检查xml是否是Java中pdf文档的一部分的最佳方法

西蒙

我想检查一个 pdf 文件是否包含一个长字符串,它是一个完整的 XML 文档的字符串。

我可以打开这两个文件并提取文本。我已经用以下代码做到了:

File temp = File.createTempFile("temp-pdf", ".tmp");
OutputStream out = new FileOutputStream(temp);
out.write(Base64.decodeBase64(testObject.getPdfAsDoc().getContent()));
out.close();
PDDocument document = PDDocument.load(temp);
PDFTextStripper pdfStripper = new PDFTextStripper();
String pdfText = pdfStripper.getText(document);
Integer posS =pdfText.indexOf("<?xml version");
Integer posE = pdfText.lastIndexOf("</ServiceSpecificationSchema:serviceSpecification>")+"</ServiceSpecificationSchema:serviceSpecification>".length();
pdfText =pdfText.substring( posS,posE );
String xmlText = testObject.getXmlAsDoc().getContent();

现在我遇到了问题,即两个文档的行不匹配,这是导致 pdf 文件中出现换行符等格式的原因。

XML 文件的 TXT 输出示例行:

<?xml version="1.0" encoding="UTF-8"?><ServiceSpecificationSchema:serviceSpecification xmlns:xs="  ..... >

PDF 文件的 TXT 输出示例行:

<?xml version="1.0" encoding="UTF-8"?><ServiceSpecificationSchema:serviceSpecification
xmlns:xs="  ..... >

其次,我在 PDF 的 XML 标签之间有页码。你知道删除这条线的好方法吗?

</operations>
Page 51 of 52
</consumerInterface>

检查 pdf 是否包含 XML 的最佳方法是什么?

我已经尝试从文件中删除所有换行符和空格并进行比较。但是如果我这样做,我就找不到区别的线。最后不一定是有效的 XML 文件。

西蒙

如果其他人需要,只想发布我的解决方案。

我的代码有点大,把它贴在这里。

基本上,我从 pdf 中提取文本并从中删除第 x 页和标题等字符串。之后,我删除了上面指出的所有空格。最后,我逐个字符地比较提取的字符串,以通知我的用户他们在文本中做错了什么。这种方法效果很好,即使作者不关心格式,只是复制和粘贴整个 xml 文档。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

检查段落的一部分是否在Google文档中超链接

检查文档是否是 Elasticsearch 查询的一部分?

检查是否包含数组的一部分

检查输入是否是列表的一部分

如何检查给定的字符串是否是Java中任何给定的Enum的一部分?

在Java 7中删除二进制文件的一部分的最佳方法是什么

在iframe中预览pdf的一部分?

R:检查向量是否是数据帧中任何行的一部分

使用 'in' 来检查单词是否是列表中项目的一部分

检查HashMap中是否存在字符串的一部分

检查数组是否包含Swift中字符串的一部分?

检查选择中的值是否为其他值集的一部分

检查哈希表的键中是否存在字符串的一部分

在PHP中复制xml的一部分

解析Java中的xml文件的一部分(Android)

是否可以检查Google帐户是否属于Google+中特定社区的一部分

XML-XSLT-保留输入XML文档的一部分

如何检查解析行中的字符是否是python中字符串变量的一部分

如何在Eclipse JDT解析中检查访问的节点是否在IfStatement节点的一部分中?

如何使用Java代码中restcontroller的一部分的方法?

官方API或检查单元格是否为动态数组一部分的方法

for循环的替代方法| 如何检查单词是否包含其他单词的一部分

Ionic 4 Firestore 是否可以只读取文档的一部分?

仅检索文档的一部分

XML文档的以下哪一部分?

检查模板类型T是否为C ++ 17中可变参数包的一部分

如何在Ruby中检查字符串是否包含数组的一部分?

Dart检查字符串列表中的一部分字符串是否包含元素

如何检查字符是否不是字符串中数字或 URL 的一部分?