【问题标题】:Validate PDF Document验证 PDF 文档
【发布时间】: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


【解决方案1】:

你可以这样做:

// Open document
Document pdfDocument = new Document(dataDir + "ValidatePDFAStandard.pdf");
    
// Validate PDF for PDF/A-1a

bool validation = pdfDocument.Validate(dataDir + "validation-result-A1A.xml", PdfFormat.PDF_A_1A);
if(!validation)
{
   // invalid

}

另见: https://docs.aspose.com/pdf/net/manipulate-pdf-document/

【讨论】:

    猜你喜欢
    • 2014-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-25
    • 2021-08-03
    相关资源
    最近更新 更多