From d1a0065ef878712ac4d79a6da758eec051c721b9 Mon Sep 17 00:00:00 2001 From: "James R. Barlow" Date: Tue, 14 Feb 2017 12:51:15 -0800 Subject: [PATCH] Create test case for Form XObjects --- ocrmypdf/__main__.py | 3 --- tests/resources/README.rst | 3 +++ tests/resources/formxobject.pdf | Bin 0 -> 2713 bytes tests/test_main.py | 6 ++++++ tests/test_pageinfo.py | 7 +++++++ 5 files changed, 16 insertions(+), 3 deletions(-) create mode 100644 tests/resources/formxobject.pdf diff --git a/ocrmypdf/__main__.py b/ocrmypdf/__main__.py index 234f4a9b..4ecbc381 100755 --- a/ocrmypdf/__main__.py +++ b/ocrmypdf/__main__.py @@ -356,9 +356,6 @@ def check_options(options, log): sys.exit(ExitCode.missing_dependency) - - - # ---------- # Logging diff --git a/tests/resources/README.rst b/tests/resources/README.rst index fd515361..a321515d 100644 --- a/tests/resources/README.rst +++ b/tests/resources/README.rst @@ -64,6 +64,9 @@ under the terms of the license in LICENSE.rst. * - epson.pdf - @lowesjam - a linearized PDF containing some unusual indirect objects, created by an Epson printer; printout of a Wikipedia article (CC BY-SA) + * - formxobject.pdf + - @jbarlow83 + - hand-crafted exotic PDF containing an image inside a Form XObject * - francais.pdf - @jbarlow83 - a page containing French accents (diacritics) diff --git a/tests/resources/formxobject.pdf b/tests/resources/formxobject.pdf new file mode 100644 index 0000000000000000000000000000000000000000..7c9044d568b5729e1b3f155f505a99a860ede082 GIT binary patch literal 2713 zcmbVOU5pb|6h;<}jDoC+KQYFe%7$f4JNHg!+HGmOKP`0$EZb}sK@sD0=C(V~&Xk!c z+g(i%7l|Mmji3pl!9`v+qC|Z$CL$OO0elpq2>~T0N;E{G@db_NPG{P(MM!KPI&LSn;W zA*psVGG3;LPeMS^D4;}wqq@pc2~8=JCY5c?&{MKaQD-VDU>v~$76lv>gZL3l7Gu14 z36wGowW3fHb@r8IWt5`yPzF6lO$%a?wORMuW<}q)q^SzS=mF1Ga<&6z?chqp*KpNe zhF?kbf<21Dq??6XHb5$Iv7Rav+DL7bqXkWm`!0QU#D_FB?pq@b;=yu~j%ouFCe2Q) z8c`-TDiPJ!li;{mHCio|OF$H=mWsL+t;T&ayfux&H8bad~`UKc3t2u?i;o3 za+K%C#>N6;!GK{FcoK<3cr5UO;0F)CHLlxo)vsF*dl^#HQcSJP=yNlvN0JEEm7UJcoHDI53%ZU&ZyXNA4{bwQD`c4VP)wi_o}ERSU3Dw@MCdAz|o)>by^a| zIL5Oi;K9|dYEgV6mGis_pqsPF;zBMry}WJ(9IgV2QR3kN;0?Cog$Gg4sN4JmNHxZs zn{8aoF}RvZTu(A?tmo>!PZQ4nL=Jtfvwaovs$2%-xD`1>L><9XCim;HJHzvus2qwx zMXU#P)xk|&xG-*UpXtaFE?r%_Gsx!En~qhLl7-fRfz5aZbrLp4XnoTxv4QrylSW0i z5kdS4O=V#rcs2~)?pU#%U^RuZ$6jcEky5qas5-?kk|Gl776lfYG<2IO6os8^uxV6H zzNTkJHo?(bF~ig{Dy9MzyK8|XrdGOUTy5wXx+ZX}ng`C^0wmOp__S8EVb}2KBJ?Rm z6+?BRTnelEq*uP-j^PE{E{*SuTs$g1us8I3=l7HMw$J8%e78qCB;HdxdM146#20~6 zzs`TCZ_c64+aJ8^%oA^k3%P@Zp|mxSnLD)W%7+W)ibdt|-R%R%P9Hh>>GnBq?hw9y z@0QaSKI%SuxxI3(^7k{nOVO77e~w=`|LhObCsrSy-0}XF@qKrEb#~8%iSZZCe*E^l z1zm5PGZ!A7vwKk>r+o5G@6<0Z9scb*@^jmluagxmO=lc=ubT$Oorb3gia6Xs&)J$) zvas{k!6ob`et8K9>vw;X&|_M)S-;i}(%R*E$YQb22mvI7RCfn)(i^lCZ>(rU9K33poa5 z+teKO1u!PvB9k?I*-eCTgIT~Txdf*c3xkM;z6d)A;moV!VjdnWj}GrB359R0q2LIf z)xSQ8f<-xNhC7+w!05@ZL@ybbpP{v`Udvz?cLv%ZEJh+saxApv*{mk zYu>^qFK_Ld)!x%S-O^qMqQ}Pn>Ev?OM|L_7vjxyZbMuMauh~|Hnn|NnHgqz?^|-Ea^4@m<<#l}(VAiF2a}6>x6cpEdfC=KZ(*=%(maO| z339mpK_N*BN+^%&HUhd~AEY;IOg}ShaCo-ZBCUP|i?EEZjwJ-c-*!cEl;-{g)W$nF literal 0 HcmV?d00001 diff --git a/tests/test_main.py b/tests/test_main.py index e0ed6ce1..82fc1f67 100644 --- a/tests/test_main.py +++ b/tests/test_main.py @@ -742,3 +742,9 @@ THIS FILE IS INVALID '--tesseract-config', str(cfg_file)) assert "parameter not found" in err, "No error message" assert p.returncode == ExitCode.invalid_config + + +def test_form_xobject(spoof_tesseract_noop, resources, outpdf): + check_ocrmypdf(resources / 'formxobject.pdf', outpdf, + '--force-ocr', + env=spoof_tesseract_noop) diff --git a/tests/test_pageinfo.py b/tests/test_pageinfo.py index eda7e276..dcb4ab90 100644 --- a/tests/test_pageinfo.py +++ b/tests/test_pageinfo.py @@ -101,3 +101,10 @@ def test_jpeg(resources, outdir): assert pdfimage['enc'] == 'jpeg' assert (pdfimage['dpi_w'] - 150) < 1e-5 + +def test_form_xobject(resources): + filename = resources / 'formxobject.pdf' + + pdfinfo = pageinfo.pdf_get_all_pageinfo(str(filename)) + pdfimage = pdfinfo[0]['images'][0] + assert pdfimage['width'] == 50