Herhangi biri Java'da oluşturulan PDF'ler için JUnits yazarken (özellikle de iText tarafından) bir deneyim yaşadığında merak ediyorum. Google'da hızlı bir arama yaptım ve belirli bir şey bulamadım. Şimdiye kadar yapabildiğim şey, PDF'nin oluşturulduğunu, belirli miktarda sayfanın olduğunu ve belgenin kapatıldığını kontrol etmekti. Ancak, belgenin içeriğini doğrulayamadım. Birisi böyle bir sonuca ulaşmak için geçmişte neler yaptığını örnek verebilir mi? Yoksa tamamen yanlış mıyım ve PDF'lerim için JUnits aşırı mı? TeşekkürleriText tarafından oluşturulan PDF için JUnits oluşturma
cevap
Java kullandığınızı göz önünde bulundurarak PDFBox (Apache) 'ye bakın. Yeniden dönüştürülen PDF'niz orijinalinizle eş anlamlı olarak aynı olmayabilir diye sorduğunuz şey oldukça zorlayıcıdır. Roundtripping düşünmek gerekebilir.
PDF gibi belgeler karşılaştırmaya göre kırılgan olabilir. Bir karşılaştırmanın başarısız olduğunu tespit ederseniz, başarısızlığın nerede olduğuna dair çok az bilgi verebilir. Bir PDF belgesi son derece karmaşık olabilir (çok dallanmış ağaçlar). Karşılaştırmak için belgenin kurallara uygun hale getirilmesi gerekebilir (bunu XML belgeleri için yapıyorum).
Tahminin tam bir test olduğunu ve mevcut testlerin mümkün olduğunca makul maliyetle mümkün olduğunu tahmin ediyorum.
GÜNCELLEME: PDDocument.equals (PDDocument) için PDFBox'u denetledim ve derin eşittir yöntemi yoktur. Bu, değerli bulduklarını (birçok alt nokta üzerinde yineleme gerektirdiğini) gösterir. Ayrıca, birçok gerçek sayı vardır, dolayısıyla bunların hepsi bir hoşgörüye karşı karşılaştırılmalıdır.
Bitmap yöntemi insanlar için işe yarayabilir, ancak gerçek sayı sorunlarına karşı çok hassastır - bir yuvarlama hatası farklı bir pikselde biraz yazacaktır. Yeni OS sürümü ile neredeyse kesinlikle farklı davranacaktır.
- 1. PDF dosyasını iText ile PDF dosyasına gömme
- 2. iText Çince karakterlerle PDF oluşturmak için, ancak görüntülenmiyor
- 3. PDF Ek Açıklamaları iText ile okuma
- 4. iTextSharp ile oluşturulan basit PDF Acrobat Reader tarafından açılamaz?
- 5. Itext pdf belgesi için meta verileri alın ve ayarlayın
- 6. Sistem tarafından oluşturulan PDF'yi S3 üzerinde depolayın.
- 7. Karma, junits eklentisini yükleyemiyor
- 8. PDF Kitaplıktaki PDF dosyalarını görüntüleyebilmek için kütüphane
- 9. MS Access 2016 tarafından oluşturulan PDF'yi harici PDF ile birleştirme PDF
- 10. PDF oluşturma PhantomJS
- 11. OpenXml'den PDF oluşturma
- 12. Fonksiyonel PDF Testi (PDF İçeriğinin Testini Otomatikleştirin)
- 13. Metin altında görüntüyü iText kullanarak pdf arkaplanı olarak nasıl eklenir?
- 14. Java IText kullanarak mevcut PDF belgesine yeni sayfa boyutu ayarlama
- 15. itext pdf dosyasına dosya ekle dosya boyutunu artır
- 16. Square Connect API tarafından oluşturulan 'Form', LastPass
- 17. HTML'yi PDF'ye dönüştürmek için nasıl kullanılır iText
- 18. ManyToMany ilişkisi için Django tarafından oluşturulan tablo doğrudan nasıl sorgulanır?
- 19. Scipy-cluster tarafından oluşturulan Dendrogram,
- 20. Raporlab oluşturulan pdf ile sekme başlığı sağlayın
- 21. Kullanıcı Tarafından Oluşturulan URL Bileşenleri İçin Ayrılmış Sözcüklerin Önerilen Listeleri
- 22. Django ile PDF oluşturma (wkhtmltopdf)
- 23. .net mvc görünümünden pdf oluşturma
- 24. Asp.net mvc PDF dosyaları oluşturma
- 25. Quartz2D ile oluşturulan PDF dosyasının boyutunu azaltın
- 26. Android tarafından oluşturulan karınca oluşturma dosyasını kullanırken JAR'lar için lib klasörü nasıl belirlenir?
- 27. Itext kullanarak pdf'de Arapça yazma
- 28. Android: Android için ücretsiz bir PDF kütüphanesi var
- 29. Uygulamam tarafından oluşturulan pdf'ye Para Birimi Sembolleri nasıl eklenir?
- 30. BIRT Rapor Tasarımcısı tarafından BIRT API'sı tarafından oluşturulan BIRT raporu için bir parametreyi nasıl ayarlayıp geçirirsiniz?
PDF'yi muhtemelen okuyabilirsiniz (iText'in [com.itextpdf.text.pdf.parser.PdfTextExtractor] ile (http://api.itextpdf.com/itext/com/itextpdf/text/pdf/parser/ PdfTextExtractor.html) veya belki bir [com.itextpdf.text.pdf.PdfReader] (http://api.itextpdf.com/itext/com/itextpdf/text/pdf/PdfReader.html)) ve sonra içeriği doğrulayın. – wchargin
PDF'leri karşılaştırmak için basit bir yaklaşım, bunları bitmap'lere dönüştürmek ve bu bitmap'leri karşılaştırmaktır - bu, o.k. PDF'lerin görünümü ile ilgilendiğiniz ve meta verilerle ilgilenmediğiniz sürece. –