我很好奇,如果任何人有爲Java中生成的PDF編寫JUnits的經驗(特別是iText)。我在Google上進行了一次快速搜索,但找不到任何具體內容。 到目前爲止,我所能做的是檢查PDF是否已經生成,有一定數量的頁面並且文檔已關閉。但我無法驗證文檔的內容。有人可以提供他們過去爲了達到這樣的結果而做的一個例子嗎?還是我完全錯了,我的PDF的JUnits是矯枉過正? 謝謝爲iText生成的PDF編寫JUnits
5
A
回答
2
鑑於您使用的是Java,我會查看PDFBox(Apache)。你所要求的是非常具有挑戰性的,因爲你的重新編制的PDF在語法上可能與你的原始文件不相同。你可能需要考慮往返。
PDF等文檔在比較方面可能比較脆弱。如果發現比較失敗,它可能幾乎沒有指示失敗的位置。 PDF文檔可能非常複雜(高度分支的樹)。您可能需要查找文檔的標準化來比較它們(我爲XML文檔執行此操作)。
我的猜測是,一個完整的測試是矯枉過正,並且您的當前測試儘可能以合理的成本儘可能好。
更新: 我檢查了PDFBox for PDDocument.equals(PDDocument)並且沒有深度等於方法。這表明他們沒有發現它是值得的(它需要在許多子節點上進行遞歸)。也有很多實際的數字,所以這些都必須與容差進行比較。
位圖方法可能適用於人類,但對實數問題非常敏感 - 舍入錯誤會在不同的像素中寫入一點。它幾乎可以肯定與新的操作系統版本有所不同。
相關問題
- 1. 從Itext生成inputStream pdf源
- 2. HeaderFooter In Itext pdf生成jar
- 3. iText PDF動態生成
- 4. iText生成的PDF在IE7中查看
- 5. 使用iText和java的PDF生成器
- 6. 自動打印iText生成的PDF
- 7. 如何爲iText生成的PDF顯示另存爲對話框?
- 8. pdf生成器Itext和JAX-RS
- 9. 使用iText生成波斯PDF
- 10. 使用iText生成黑白PDF格式
- 11. 使用java生成pdf文件,Itext
- 12. 使用iText和pdf編寫器覆蓋pdf中的creationDate
- 13. 使用iText爲生成的PDF創建單元測試
- 14. iText連續PDF編輯java
- 15. 使用iText,在內存上生成在磁盤上生成的PDF代替
- 16. 無法讀取的iText __OKBPDF生成的PDF
- 17. 在iText的PDF
- 18. 使用Java或iText生成兩個完全相同的PDF
- 19. 使用itext生成pdf的文本重疊問題
- 20. 如何測試使用iText生成的PDF?
- 21. 使用iText從Java中的HTML文件生成PDF時出錯
- 22. 使用itext打開pdf生成的對話問題
- 23. 用itext生成的PDF在使用SetSimpleColumn()時變得'損壞'
- 24. iText生成的PDF在Chrome中未正確顯示
- 25. JFreeChart沒有在生成的Spring MVC和iText中顯示PDF
- 26. 使用中文字符生成PDF的iText,但不顯示
- 27. 使用相對路徑的錨方法利用iText生成PDF
- 28. 如何使用java MVC模式中的itext生成PDF文檔
- 29. 無法發送由iText生成的pdf到docuSign
- 30. 加速顯示iText /飛碟生成的PDF打印對話框
您可以重新閱讀PDF(使用iText的[com.itextpdf.text.pdf.parser.PdfTextExtractor](http://api.itextpdf.com/itext/com/itextpdf/text/pdf/parser/ PdfTextExtractor.html)或者[com.itextpdf.text.pdf.PdfReader](http://api.itextpdf.com/itext/com/itextpdf/text/pdf/PdfReader.html)),然後驗證內容。 – wchargin
比較PDF的一種簡單方法是將它們渲染爲位圖並比較這些位圖 - 這就是o.k.只要您對PDF的外觀感興趣並且不關心元數據等。 –