我正在与更大的开发人员社区接触,以寻求帮助以了解真正的事业并可能找到解决方案。我已经问了Aspose的问题,他们还跟踪了他们的系统中的问题(PDFNET-42880)。我认为他们不会在非常具体的情况下尽快进行调查。现在,我在此处发布此信息,以询问有关:
链接到他们(aspose)旧论坛:https://www.aspose.com/community/forums/thread/845549/removing-stamps-fails-fails-fails-saving-saving-pamp–file-file-file-from-adobe-acrobat.aspx
案子:
使用OpenOffice(版本3.4.0)创建了PDF,并用Aspose PDF盖章,并使用Adobe Reader DC(或Adobe Acrobat XI)打开,填充,保存为新文件。现在,这个新文件很好,但是当我尝试使用Aspose删除邮票(并稍后用新邮票替换)时,事情变得有趣。
我已经测试的文件:https://1drv.ms/f/s!
C#代码用于删除邮票:
使用Adobe:
删除邮票的过程正常,但是试图打开文件的过程最终将与文件遇到问题。
“此页面上存在错误。杂技演员可能无法正确显示页面。请联系创建PDF文档以纠正问题的人。”
使用Foxit:
该过程的唯一区别是,将文件打开到Foxit读取器并在此保存表单。卸下邮票,文件很好,可与任何PDF阅读器一起使用。
使用Windows(10)阅读器:
该过程的唯一区别是,将文件打开给Windows读取器并从那里保存。卸下邮票,文件很好,可与任何PDF阅读器一起使用。
看答案
好的 – 您指的是邮票注释。这是一个被吸引到页面内容中的Xobject。为什么Aspose将其称为邮票是……好吧……一个谜。当您删除“邮票”(不是邮票)时,Aspose似乎正在删除Xobject,但是
不是绘制它的说明
从页面目录流…这就是为什么您在Acrobat中获得错误的原因。其他应用程序对PDF的宽容更为宽松,我的猜测是当他们写出文件时,他们正在删除对不存在的对象的引用。您可以通过选择另存为优化的PDF来尝试解决此类问题。但是,除了Xobject之外,您最好删除绘图说明。
由于您创建文件并添加了“邮票”,因此您的页面内容流是流的数组。删除数组中的最后一个项目,这是绘制Xobject的指令,您的文件将在所有观看者中没有错误的情况下工作。注意:内容数组中的最后一项将是您的邮票。只是您的邮票是最后一件事,因此它在最后。
如果您的目的是“替换”“邮票”,则需要在现在执行时删除Xobject,然后删除说明,然后添加新的“邮票”。