【问题标题】:Extract / access XML file embedded in PDF提取/访问嵌入在 PDF 中的 XML 文件
【发布时间】:2020-05-07 12:44:01
【问题描述】:

我有一个带有嵌入式 XML 文件的 PDF。我想访问 R 中嵌入的 XML 文件。

手动解决问题的一种方法是使用 Adob​​e Acrobat 打开 PDF 文件,然后手动保存嵌入的 XML 文件(请参阅here)。然后可以使用 XML 包在 R 中访问保存的 XML 文件。

但是,由于我必须为大量 PDF 运行此程序并且其余代码在 R 中,我正在寻找 R 中的解决方案。pdftools 包似乎没有提供解决方案,也没有pdftk 似乎是为 R 实现的。

【问题讨论】:

  • 我可能有一个解决方案 - 您能否提供一个示例 pdf 的链接以使用 Dropbox 或类似工具进行测试?
  • @AllanCameron 我无法共享原始文件,因为它包含敏感数据。我在Github 上找到了一个示例文件——这里的附件是TXT,不是XML,但工作流程应该是一样的。
  • 基本上我已经在 R 中编写了一个 pdf 库(实际上是在带有漂亮 R 接口的 c++ 中),它可以从 pdf 对象中获取压缩流。例如,您链接的示例pdf中的附加文本文件位于pdf的对象6中,只是一个短字符串,我通过get_object("sample.pdf"), 6)$stream得到并返回[1] "Aspose.Pdf for .NET",根据github,这是正确的。如果没有看到您自己的 pdf,将很难建议您如何提取您的 xml。当然,欢迎您自己尝试 - 请参阅 github.com/AllanCameron/PDFR
  • 嵌入和附件一样吗?

标签: r xml pdf


【解决方案1】:

好像pdftoolspdf_attachments() 功能。使用您提供的示例 pdf 文件:

library(pdftools)

a<-pdftools::pdf_attachments("GetIndividualAttachment.pdf")

txt <- a[[1]]$data
txt
#>  [1] 41 73 70 6f 73 65 2e 50 64 66 20 66 6f 72 20 2e 4e 45 54

rawToChar(txt)
#> [1] "Aspose.Pdf for .NET"

您应该能够以类似的方式提取 XML 附件。

【讨论】:

  • 如果 PDF 附加了多个文件,访问每个文件的方式都在改变 "txt
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-10
  • 2020-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-16
相关资源
最近更新 更多