【发布时间】:2017-08-21 04:41:21
【问题描述】:
我只是想知道是否有办法检查 pdf 文件是否有效或不包含任何错误。目前,我们只有这段代码来检查文件是否有效。
var pdfDocument = new Document(stream)
其中流是文档的 MemoryStream。但是,当我尝试上传 pdf 文件并向其中添加图像时,出现错误(交叉引用的东西)。我在线检查了此 PDF 是否有效并收到此错误消息。
我想要一些东西或一些代码来捕捉错误。我有一个想法,但我需要你的专家建议如何做到这一点。
【问题讨论】:
-
Aspose.Pdf for .NET 提供 Document.Validate() 方法来验证 PDF-A 格式的合规性。您只需将 log.xml 文件的路径和格式类型传递给如下方法: Document pdfDocument = new Document("ValidatePDFAStandard.pdf"); // 为 PDF/A-1a 验证 PDF pdfDocument.Validate("validation-result-A1A.xml", PdfFormat.PDF_A_1A); XML 日志包含一组名为 Problem 的标签;每个标签都包含特定问题的详细信息。我在 Aspose 担任支持开发人员。
-
是否可以不传入xml文件而是将cmets放入字符串中?原因是我们有一个日志文件,我想在那里记录所有的 cmets。
-
当使用上述Validate(..)方法时,您可以指定您需要验证的确切PDF/A合规格式,您还可以将合规验证输出保存在文件或流中实例。除了这种方法,您可以考虑使用以下属性来确定输入文件是否符合 PDF/A。文档 doc = new Document(@"C:\pdftest\input.pdf"); // 判断输入文件是否符合 PDF/A Console.WriteLine(doc.IsPdfaCompliant);
-
@codewarior 简而言之,我无法通过返回字符串获取 cmets 吗?因为我打算做的是这样的
string comments = pdfDocument.Validate(...); logger.Debug(comments);这样的事情 -
@Musikero31 如上所述,如果您需要获取验证方法的内容,您可以将输出保存在 Stream 实例中或文件系统上的某个单独的日志文件中,然后将该内容添加到记录器中。为了将 Validation 方法的内容保存到文件中,请尝试使用 Asad 上面分享的方法。
标签: aspose aspose.pdf