【发布时间】:2017-07-06 18:00:46
【问题描述】:
我正在与更大的开发者社区联系,寻求帮助以了解真正的原因并可能找到解决方法。我向 Aspose 提出了问题,他们还在他们的系统中跟踪了这个问题 (PDFNET-42880)。我认为他们不会很快对此进行调查,因为这是非常具体的情况。现在我在这里发帖询问更多细节:
Adobe“另存为”与 Foxit Reader“另存为”与 Windows Reader“另存为”功能有何区别?
Adobe 产品的问题并不那么明显。我什至不知道该问什么:D
链接到他们的(Aspose)旧论坛:https://www.aspose.com/community/forums/thread/845549/removing-stamps-fails-after-saving-stamped-file-from-adobe-acrobat.aspx
案例: 使用 OpenOffice(版本 3.4.0)创建带有表单的 PDF,使用 Aspose PDF 标记,使用 Adobe Reader DC(或 Adobe Acrobat XI)打开,填充,保存为新文件。现在这个新文件很好,但是当我尝试使用 Aspose 删除图章(并稍后用新图章替换)时,事情就变得有趣了。
我测试过的文件:https://1drv.ms/f/s!Auvpijam7a73iDzOqc6wZPuY9l81
- Stamp_Location.png
- OoPdfFormExample_WithStamp.pdf
- OoPdfFormExample_WithStamp_StampRemoved.pdf
- OoPdfFormExample_WithStamp_SavedFromFoxit.pdf
- OoPdfFormExample_WithStamp_SavedFromFoxit_StampRemoved.pdf
- OoPdfFormExample_WithStamp_SavedFromWindowsReader.pdf
- OoPdfFormExample_WithStamp_SavedFromWindowsReader_StampRemoved.pdf
- OoPdfFormExample_WithStamp_SavedFromAdobeReader.pdf
- OoPdfFormExample_WithStamp_SavedFromAcrobat_StampRemoved.pdf
用于移除标记的 C# 代码:
/// <summary>
/// Removes stamps from PDF file.
/// </summary>
/// <param name="pdfFile"></param>
private static void RemoveStamps( string pdfFile )
{
// Create PDF content editor.
Aspose.Pdf.Facades.PdfContentEditor contentEditor = new Aspose.Pdf.Facades.PdfContentEditor();
// Open the temp file.
contentEditor.BindPdf( pdfFile );
// Process all pages.
foreach ( Page page in contentEditor.Document.Pages )
{
// Get the stamp infos.
Aspose.Pdf.Facades.StampInfo[] stampInfos = contentEditor.GetStamps( page.Number );
//Process all stamp infos
foreach ( Aspose.Pdf.Facades.StampInfo stampInfo in stampInfos )
{
// Use try catch so we can output possible error w/out break point.
try
{
contentEditor.DeleteStampById( stampInfo.StampId );
}
catch ( Exception e )
{
Console.WriteLine( e );
}
}
}
// Save changes to the temp file.
contentEditor.Save( StampRemovedPdfFile );
}
使用 Adobe: 删除图章的过程可以正常工作,但尝试打开文件最终会导致文件出现问题。
“此页面存在错误。Acrobat 可能无法正确显示该页面。请联系创建 PDF 文档的人员以更正问题。”
编辑:在进行了更多测试之后,只需将文件打开到 Aspose,并在不修改的情况下保存它,这并没有破坏文件,只有在使用 Aspose 方法删除印章后,它才会被破坏。
使用 Foxit: 唯一的区别是打开文件到 Foxit Reader 并在那里保存表格。印章被移除,文件正常,适用于任何 PDF 阅读器。
使用 Windows (10) Reader: 唯一的区别是打开文件到 Windows Reader 并从那里保存。印章被移除,文件正常,适用于任何 PDF 阅读器。
【问题讨论】:
-
在文件“OoPdfFormExample_WithStamp.pdf”中,我根本没有看到邮票...假设您指的是“邮票”注释。
-
谢谢@joelgeraci - 邮票在哪里也不是很明显。我添加了一张图片Stamp_Location.png 以帮助查看邮票的位置。
-
@MattiKetonen,我在 Aspose 担任开发人员布道师。我已经记录了您对记录的问题的所有疑虑以及已在此处共享的更多详细信息。产品团队完成调查后,我们将在 Aspose 论坛的原始帖子中通知您。请给我们一点时间。
-
@AsadAli,也感谢您对此感兴趣。我正在寻找其他选项和信息,因为我也有截止日期。您的 (Aspose) 支持对我的体验非常好,从您的论坛获得帮助有助于解决此 PDF 标记所包含的解决方案的大部分问题。
-
Matti,@joelgeraci 的回答对您有帮助吗?还是您还有疑问?
标签: pdf adobe aspose aspose.pdf