以下脚本使用
现在,CPAN上的页面(此处链接)将方法列在“更深层次的实用工具”下面,这可能意味着它不适用于公共使用。此外,它还警告说:
关于如何使用其他工具从PDF中删除图像,请参阅相关问题此处。
CAM::PDF
可以删除 PDF 文件中的所有图片。 然而,输出文件已损坏。 PDF 阅读器仍然可以打开它,但会报告错误。例如,mupdf
会输出以下信息:error: no XObject subtype specified
error: cannot draw xobject/image
warning: Ignoring errors during rendering
mupdf: warning: Errors found on page
现在,CPAN上的页面(此处链接)将方法列在“更深层次的实用工具”下面,这可能意味着它不适用于公共使用。此外,它还警告说:
我的问题是:使用删除PDF文件中的对象的正确方法是什么?如果问题与依赖关系有关,则如何在处理其依赖关系的同时删除对象?该函数不会处理此对象的依赖关系。
关于如何使用其他工具从PDF中删除图像,请参阅相关问题此处。
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 ( '-' );