아래 스크립트는 CAM::PDF
을 사용하여 PDF 파일에서 모든 이미지를 제거 할 수 있습니다. 그러나 출력이 손상되었습니다. 그럼에도 불구하고 PDF 리더는 열 수는 있지만 오류에 대해 불평합니다. 예를 들어, mupdf
말한다 :CAM :: PDF를 사용하여 손상되지 않고 PDF에서 모든 이미지를 삭제하는 방법?
error: no XObject subtype specified
error: cannot draw xobject/image
warning: Ignoring errors during rendering
mupdf: warning: Errors found on page
지금, CPAN에서 CAM::PDF
페이지 (here는) 아마도 그것이 공공의 사용을위한 것 아니에요 의미 "깊은 유틸리티"에서 deleteObject()
방법을 보여줍니다. 또한 다음과 같이 경고합니다.
이 함수는이 개체에 대한 종속성을 처리하지 않습니다.
제 질문은 CAM::PDF
을 사용하여 PDF 파일에서 개체를 제거하는 올바른 방법은 무엇입니까? 문제가 종속성과 관련된 경우 종속성을 처리하는 동안 객체를 제거하려면 어떻게해야합니까?
다른 도구를 사용하여 PDF에서 이미지를 제거하는 방법은 관련 질문 here을 참조하십시오.
use CAM::PDF;
my $pdf = new CAM::PDF (shift) or die $CAM::PDF::errstr;
foreach my $objnum (sort { $a <=> $b } keys %{ $pdf->{xref} }) {
my $xobj = $pdf->dereference ($objnum);
if ($xobj->{value}->{type} eq 'dictionary') {
my $im = $xobj->{value}->{value};
if
(
defined $im->{Type} and defined $im->{Subtype}
and $pdf->getValue ($im->{Type} ) eq 'XObject'
and $pdf->getValue ($im->{Subtype}) eq 'Image'
)
{
$pdf->deleteObject ($objnum);
}
}
}
$pdf->cleanoutput ('-');
mupdf 오류를 사용할 수있는 손상된 PDF 파일이 있습니까? 비슷한 문제를 디버깅 중이며 큰 도움이 될 것입니다. – Darajan