Commit 18340b883564386c6e8e5d3126698a023033a548
1 parent
bf8fd41f
Spell check
Showing
5 changed files
with
54 additions
and
6 deletions
ChangeLog
| 1 | 1 | 2021-01-04 Jay Berkenbilt <ejb@ql.org> |
| 2 | 2 | |
| 3 | 3 | * When qpdf CLI extracts pages, it now only attempts to remove |
| 4 | - unreferenced resourecs from the pages that it is keeping. This | |
| 4 | + unreferenced resources from the pages that it is keeping. This | |
| 5 | 5 | change dramatically reduces the time it takes to extract a small |
| 6 | 6 | number of pages from a large, complex file. |
| 7 | 7 | ... | ... |
examples/pdf-custom-filter.cc
| ... | ... | @@ -23,7 +23,7 @@ |
| 23 | 23 | // is no such filter in PDF, so the streams created by the example |
| 24 | 24 | // would not be usable by any PDF reader. However, the techniques here |
| 25 | 25 | // would work if you were going to implement support for a filter that |
| 26 | -// qpdf does not support natively. For example, using the techinques | |
| 26 | +// qpdf does not support natively. For example, using the techniques | |
| 27 | 27 | // shown here, it would be possible to create an application that |
| 28 | 28 | // downsampled or re-encoded images or that re-compressed streams |
| 29 | 29 | // using a more efficient "deflate" implementation than zlib. |
| ... | ... | @@ -85,7 +85,7 @@ class SF_XORDecode: public QPDFStreamFilter |
| 85 | 85 | // validate and interpret decode parameters (/DecodeParms) for the |
| 86 | 86 | // made-up /XORDecode stream filter. Since this is not a real |
| 87 | 87 | // stream filter, no actual PDF reader would know how to interpret |
| 88 | - // it. This is just to illlustrate how to create a stream filter. | |
| 88 | + // it. This is just to illustrate how to create a stream filter. | |
| 89 | 89 | // In main(), we call QPDF::registerStreamFilter to tell the |
| 90 | 90 | // library about the filter. See comments in QPDFStreamFilter.hh |
| 91 | 91 | // for details on how to implement the methods. For purposes of |
| ... | ... | @@ -260,7 +260,7 @@ StreamReplacer::maybeReplace(QPDFObjGen const& og, |
| 260 | 260 | // necessary setup. When we are actually ready to supply the data, |
| 261 | 261 | // this method is called again with pipeline populated and |
| 262 | 262 | // dict_updates as a nullptr. In this mode, we are not allowed to |
| 263 | - // change anything, sincing writing is already in progress. We | |
| 263 | + // change anything, since writing is already in progress. We | |
| 264 | 264 | // must simply provide the stream data. |
| 265 | 265 | |
| 266 | 266 | // The return value indicates whether or not we should replace the | ... | ... |
include/qpdf/QPDFStreamFilter.hh
| ... | ... | @@ -39,7 +39,7 @@ class QPDF_DLL_CLASS QPDFStreamFilter |
| 39 | 39 | // setDecodeParms() and getDecodePipeline(). QPDF will always call |
| 40 | 40 | // setDecodeParms() before calling getDecodePipeline(). It is |
| 41 | 41 | // expected that you will store any needed information from |
| 42 | - // decode_parms (or the decode_parms object iself) in your | |
| 42 | + // decode_parms (or the decode_parms object itself) in your | |
| 43 | 43 | // instance so that it can be used to construct the decode |
| 44 | 44 | // pipeline. |
| 45 | 45 | ... | ... |
ispell-words
| ... | ... | @@ -119,6 +119,7 @@ argExternalizeInlineImages |
| 119 | 119 | argfile |
| 120 | 120 | argFilteredStreamData |
| 121 | 121 | argFlattenAnnotations |
| 122 | +argFlattenRotation | |
| 122 | 123 | argForceVersion |
| 123 | 124 | argGenerateAppearances |
| 124 | 125 | argHelp |
| ... | ... | @@ -277,6 +278,7 @@ bookinfo |
| 277 | 278 | bool |
| 278 | 279 | BoringSSL |
| 279 | 280 | BORLANDC |
| 281 | +boxkey | |
| 280 | 282 | bp |
| 281 | 283 | BPC |
| 282 | 284 | bpp |
| ... | ... | @@ -397,6 +399,7 @@ commandline |
| 397 | 399 | COMP |
| 398 | 400 | compareVersions |
| 399 | 401 | compatbility |
| 402 | +completionCommon | |
| 400 | 403 | CompressConfig |
| 401 | 404 | computeDeterministicIDData |
| 402 | 405 | concat |
| ... | ... | @@ -428,6 +431,7 @@ CreateFile |
| 428 | 431 | createPageContents |
| 429 | 432 | createWhat |
| 430 | 433 | CreationDate |
| 434 | +cred | |
| 431 | 435 | cregex |
| 432 | 436 | CRNL |
| 433 | 437 | CropBox |
| ... | ... | @@ -558,8 +562,11 @@ doFinalChecks |
| 558 | 562 | Dohnal |
| 559 | 563 | DOTLESS |
| 560 | 564 | doubleBoxSize |
| 565 | +downsampled | |
| 566 | +downsampler | |
| 561 | 567 | doWrite |
| 562 | 568 | doWriteSetup |
| 569 | +DoXOR | |
| 563 | 570 | Doxygen |
| 564 | 571 | dp |
| 565 | 572 | DQPDF |
| ... | ... | @@ -707,6 +714,7 @@ filetrailer |
| 707 | 714 | filterability |
| 708 | 715 | filterAsContents |
| 709 | 716 | filterCompressedObjects |
| 717 | +filterContents | |
| 710 | 718 | filterp |
| 711 | 719 | filterPageContents |
| 712 | 720 | findAndSkipNextEOL |
| ... | ... | @@ -732,6 +740,7 @@ flarp |
| 732 | 740 | flate |
| 733 | 741 | Flate's |
| 734 | 742 | FlateDecode |
| 743 | +FlateLzwDecode | |
| 735 | 744 | flattenAnnotations |
| 736 | 745 | flattenAnnotationsForPage |
| 737 | 746 | flattenPagesTree |
| ... | ... | @@ -750,6 +759,10 @@ forcePDFVersion |
| 750 | 759 | ForceR |
| 751 | 760 | ForceV |
| 752 | 761 | foreach |
| 762 | +forEachFormXObject | |
| 763 | +forEachImage | |
| 764 | +ForEachImage | |
| 765 | +forEachXObject | |
| 753 | 766 | ForeignStreamData |
| 754 | 767 | FormatMessageA |
| 755 | 768 | fp |
| ... | ... | @@ -826,6 +839,7 @@ getCount |
| 826 | 839 | getCropBox |
| 827 | 840 | getDA |
| 828 | 841 | getDataChecksum |
| 842 | +getDecodePipeline | |
| 829 | 843 | getDefaultAppearance |
| 830 | 844 | getDefaultProvider |
| 831 | 845 | getDefaultValue |
| ... | ... | @@ -850,6 +864,7 @@ getFileChecksum |
| 850 | 864 | GetFileInformationByHandle |
| 851 | 865 | getFilename |
| 852 | 866 | getFilePosition |
| 867 | +getFilterOnWrite | |
| 853 | 868 | getFinalVersion |
| 854 | 869 | getFirstChar |
| 855 | 870 | getFlags |
| ... | ... | @@ -857,6 +872,7 @@ getFontFromResource |
| 857 | 872 | getFontName |
| 858 | 873 | getFormFields |
| 859 | 874 | getFormXObjectForPage |
| 875 | +getFormXObjects | |
| 860 | 876 | getFullyQualifiedName |
| 861 | 877 | getGen |
| 862 | 878 | getGeneration |
| ... | ... | @@ -864,6 +880,7 @@ getHeight |
| 864 | 880 | getHexDigest |
| 865 | 881 | getId |
| 866 | 882 | getIdentifier |
| 883 | +getImages | |
| 867 | 884 | getImpl |
| 868 | 885 | getInheritableFieldValue |
| 869 | 886 | getInheritableFieldValueAsName |
| ... | ... | @@ -1091,6 +1108,7 @@ ImageC |
| 1091 | 1108 | ImageChecker |
| 1092 | 1109 | ImageInverter |
| 1093 | 1110 | ImageMask |
| 1111 | +imagemask | |
| 1094 | 1112 | ImageOptimizer |
| 1095 | 1113 | ImageProvider |
| 1096 | 1114 | img |
| ... | ... | @@ -1163,12 +1181,15 @@ isDictionary |
| 1163 | 1181 | isdigit |
| 1164 | 1182 | isDirectNull |
| 1165 | 1183 | isEncrypted |
| 1184 | +isFormXObject | |
| 1166 | 1185 | isIgnorable |
| 1186 | +isImage | |
| 1167 | 1187 | isIndirect |
| 1168 | 1188 | isInitialized |
| 1169 | 1189 | isInlineImage |
| 1170 | 1190 | isInteger |
| 1171 | 1191 | isLinearized |
| 1192 | +isLossyCompression | |
| 1172 | 1193 | isMatrix |
| 1173 | 1194 | isName |
| 1174 | 1195 | isNull |
| ... | ... | @@ -1189,6 +1210,7 @@ isReserved |
| 1189 | 1210 | isScalar |
| 1190 | 1211 | isspace |
| 1191 | 1212 | isSpace |
| 1213 | +isSpecializedCompression | |
| 1192 | 1214 | isStream |
| 1193 | 1215 | isString |
| 1194 | 1216 | isText |
| ... | ... | @@ -1202,6 +1224,7 @@ iter |
| 1202 | 1224 | ith |
| 1203 | 1225 | iz |
| 1204 | 1226 | jarr |
| 1227 | +JBIG | |
| 1205 | 1228 | JCS |
| 1206 | 1229 | JDIMENSION |
| 1207 | 1230 | jdouble |
| ... | ... | @@ -1233,6 +1256,7 @@ keybits |
| 1233 | 1256 | keylen |
| 1234 | 1257 | KEYLENGTH |
| 1235 | 1258 | keyset |
| 1259 | +KeyStream | |
| 1236 | 1260 | kgdl |
| 1237 | 1261 | LARGEFILE |
| 1238 | 1262 | LastChar |
| ... | ... | @@ -1334,6 +1358,7 @@ makeNumber |
| 1334 | 1358 | makePipeline |
| 1335 | 1359 | makeReal |
| 1336 | 1360 | makeString |
| 1361 | +Mal | |
| 1337 | 1362 | malloc |
| 1338 | 1363 | manualFinish |
| 1339 | 1364 | mappingname |
| ... | ... | @@ -1342,6 +1367,7 @@ Mateusz |
| 1342 | 1367 | maxEnd |
| 1343 | 1368 | maxlen |
| 1344 | 1369 | maxval |
| 1370 | +maybeReplace | |
| 1345 | 1371 | md |
| 1346 | 1372 | mdash |
| 1347 | 1373 | MDd |
| ... | ... | @@ -1439,6 +1465,7 @@ nitems |
| 1439 | 1465 | nkids |
| 1440 | 1466 | nl |
| 1441 | 1467 | nlines |
| 1468 | +nlohmann | |
| 1442 | 1469 | nmatches |
| 1443 | 1470 | nMatches |
| 1444 | 1471 | NoBackref |
| ... | ... | @@ -1535,6 +1562,7 @@ OptionEntry |
| 1535 | 1562 | ord |
| 1536 | 1563 | org |
| 1537 | 1564 | orig |
| 1565 | +OrigLength | |
| 1538 | 1566 | orred |
| 1539 | 1567 | os |
| 1540 | 1568 | oss |
| ... | ... | @@ -1582,7 +1610,9 @@ param |
| 1582 | 1610 | params |
| 1583 | 1611 | parms |
| 1584 | 1612 | parseable |
| 1613 | +parseAsContents | |
| 1585 | 1614 | parsecontent |
| 1615 | +parseContents | |
| 1586 | 1616 | parseContentStream |
| 1587 | 1617 | parsedoffset |
| 1588 | 1618 | ParseGuard |
| ... | ... | @@ -1614,6 +1644,7 @@ pdfdoc |
| 1614 | 1644 | PDFDoc |
| 1615 | 1645 | PDFDocEncoding |
| 1616 | 1646 | pdfDumpInfoDict |
| 1647 | +PDFEx | |
| 1617 | 1648 | PDFs |
| 1618 | 1649 | pdfs |
| 1619 | 1650 | pdh |
| ... | ... | @@ -1630,6 +1661,7 @@ phe |
| 1630 | 1661 | php |
| 1631 | 1662 | pikepdf |
| 1632 | 1663 | pikepdf's |
| 1664 | +pipeContents | |
| 1633 | 1665 | pipeContentStreams |
| 1634 | 1666 | pipeForeignStreamData |
| 1635 | 1667 | PipelineAccessor |
| ... | ... | @@ -1694,6 +1726,7 @@ programlisting |
| 1694 | 1726 | programmatically |
| 1695 | 1727 | ProgressReporter |
| 1696 | 1728 | Projet |
| 1729 | +ProtectXOR | |
| 1697 | 1730 | prov |
| 1698 | 1731 | provideRandomData |
| 1699 | 1732 | provideStreamData |
| ... | ... | @@ -1722,6 +1755,7 @@ pytest |
| 1722 | 1755 | qarray |
| 1723 | 1756 | QArray |
| 1724 | 1757 | qbilt |
| 1758 | +qdata | |
| 1725 | 1759 | qdf |
| 1726 | 1760 | qdf's |
| 1727 | 1761 | QdfFixer |
| ... | ... | @@ -1735,6 +1769,7 @@ QIntC |
| 1735 | 1769 | ql |
| 1736 | 1770 | qnumbers |
| 1737 | 1771 | QNumbers |
| 1772 | +qoh | |
| 1738 | 1773 | qp |
| 1739 | 1774 | qpdf |
| 1740 | 1775 | qpdf's |
| ... | ... | @@ -1773,6 +1808,7 @@ qpdfs |
| 1773 | 1808 | QPDFSomethingDocumentHelper |
| 1774 | 1809 | QPDFSomethingObjectHelper |
| 1775 | 1810 | QPDFStream |
| 1811 | +QPDFStreamFilter | |
| 1776 | 1812 | QPDFSystemError |
| 1777 | 1813 | QPDFTokenizer |
| 1778 | 1814 | QPDFTYPES |
| ... | ... | @@ -1848,6 +1884,8 @@ registerForeignStream |
| 1848 | 1884 | registerImage |
| 1849 | 1885 | registerImpl |
| 1850 | 1886 | registerProgressReporter |
| 1887 | +registerStream | |
| 1888 | +registerStreamFilter | |
| 1851 | 1889 | Regsvr |
| 1852 | 1890 | releaseResolved |
| 1853 | 1891 | ReleaseResolver |
| ... | ... | @@ -1872,6 +1910,7 @@ reportProgress |
| 1872 | 1910 | repos |
| 1873 | 1911 | requiredChoices |
| 1874 | 1912 | requiredParameter |
| 1913 | +resampler | |
| 1875 | 1914 | resave |
| 1876 | 1915 | reserveObjects |
| 1877 | 1916 | resetBits |
| ... | ... | @@ -1928,6 +1967,7 @@ saphir |
| 1928 | 1967 | sarray |
| 1929 | 1968 | SASLprep |
| 1930 | 1969 | savable |
| 1970 | +sc | |
| 1931 | 1971 | scanline |
| 1932 | 1972 | scanlines |
| 1933 | 1973 | Scarff |
| ... | ... | @@ -1956,6 +1996,7 @@ setCompressStreams |
| 1956 | 1996 | setContentNormalization |
| 1957 | 1997 | setDataKey |
| 1958 | 1998 | setDecodeLevel |
| 1999 | +setDecodeParms | |
| 1959 | 2000 | setDefaultProvider |
| 1960 | 2001 | setDescription |
| 1961 | 2002 | setDeterministicID |
| ... | ... | @@ -1967,6 +2008,7 @@ setExtraHeaderText |
| 1967 | 2008 | setFieldAttribute |
| 1968 | 2009 | setFile |
| 1969 | 2010 | setFilename |
| 2011 | +setFilterOnWrite | |
| 1970 | 2012 | setFromVector |
| 1971 | 2013 | setIgnoreXRefStreams |
| 1972 | 2014 | setImmediateCopyFrom |
| ... | ... | @@ -2047,6 +2089,7 @@ src |
| 2047 | 2089 | srdp |
| 2048 | 2090 | sregex |
| 2049 | 2091 | ss |
| 2092 | +ssp | |
| 2050 | 2093 | sstream |
| 2051 | 2094 | stampfile |
| 2052 | 2095 | stamppdf |
| ... | ... | @@ -2080,6 +2123,7 @@ strcpy |
| 2080 | 2123 | streamDataChoices |
| 2081 | 2124 | StreamDataProvider |
| 2082 | 2125 | streammethod |
| 2126 | +StreamReplacer | |
| 2083 | 2127 | strerror |
| 2084 | 2128 | StrF |
| 2085 | 2129 | stricmp |
| ... | ... | @@ -2144,6 +2188,7 @@ Te |
| 2144 | 2188 | TerminateParsing |
| 2145 | 2189 | terminateParsing |
| 2146 | 2190 | testcase |
| 2191 | +TestDriver | |
| 2147 | 2192 | testOutlines |
| 2148 | 2193 | testPages |
| 2149 | 2194 | TESTSUITE |
| ... | ... | @@ -2320,6 +2365,7 @@ wfilenamep |
| 2320 | 2365 | WFLAGS |
| 2321 | 2366 | wfopen |
| 2322 | 2367 | whoami |
| 2368 | +willFilterStream | |
| 2323 | 2369 | WinAnsi |
| 2324 | 2370 | winansi |
| 2325 | 2371 | WinAnsiEncoding |
| ... | ... | @@ -2411,6 +2457,8 @@ XObject |
| 2411 | 2457 | XObject's |
| 2412 | 2458 | XObjects |
| 2413 | 2459 | xor |
| 2460 | +XORDecode | |
| 2461 | +XORs | |
| 2414 | 2462 | xp |
| 2415 | 2463 | xpacket |
| 2416 | 2464 | xpdf | ... | ... |
libqpdf/QPDFPageObjectHelper.cc
| ... | ... | @@ -1084,7 +1084,7 @@ QPDFPageObjectHelper::flattenRotation() |
| 1084 | 1084 | // When we rotate the page, pivot about the point 0, 0 and then |
| 1085 | 1085 | // translate so the page is visible with the origin point being |
| 1086 | 1086 | // the same offset from the lower left corner of the media box. |
| 1087 | - // These calculations have been verified emperically with various | |
| 1087 | + // These calculations have been verified empirically with various | |
| 1088 | 1088 | // PDF readers. |
| 1089 | 1089 | QPDFObjectHandle::Matrix cm; |
| 1090 | 1090 | cm.e = 0.0; | ... | ... |