mirror of
https://github.com/qpdf/qpdf.git
synced 2024-12-31 14:01:59 +00:00
Handle older PDFs whose form XObjects inherit resources (fixes #494)
When removing unreferenced resources, notice if a page (recursively) contains a form XObject with unreferenced resources, and count any such resources as referenced by the page.
This commit is contained in:
parent
81025e4998
commit
faa2e3ddfd
@ -1,3 +1,12 @@
|
|||||||
|
2021-02-02 Jay Berkenbilt <ejb@ql.org>
|
||||||
|
|
||||||
|
* Bug fix: if a form XObject lacks a resources dictionary,
|
||||||
|
consider any names in that form XObject to be referenced from the
|
||||||
|
containing page. This is compliant with older PDF versions. Also
|
||||||
|
detect if any form XObjects have any unresolved names and, if so,
|
||||||
|
don't remove unreferenced resources from them or from the page
|
||||||
|
that contains them. Fixes #494.
|
||||||
|
|
||||||
2021-01-31 Jay Berkenbilt <ejb@ql.org>
|
2021-01-31 Jay Berkenbilt <ejb@ql.org>
|
||||||
|
|
||||||
* Bug fix: properly handle strings if they appear in inline image
|
* Bug fix: properly handle strings if they appear in inline image
|
||||||
|
@ -317,9 +317,9 @@ class QPDFPageObjectHelper: public QPDFObjectHelper
|
|||||||
void flattenRotation();
|
void flattenRotation();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
static void
|
static bool
|
||||||
removeUnreferencedResourcesHelper(
|
removeUnreferencedResourcesHelper(
|
||||||
QPDFPageObjectHelper ph);
|
QPDFPageObjectHelper ph, std::set<std::string>& unresolved);
|
||||||
|
|
||||||
class Members
|
class Members
|
||||||
{
|
{
|
||||||
|
@ -701,10 +701,16 @@ NameWatcher::handleToken(QPDFTokenizer::Token const& token)
|
|||||||
writeToken(token);
|
writeToken(token);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
bool
|
||||||
QPDFPageObjectHelper::removeUnreferencedResourcesHelper(
|
QPDFPageObjectHelper::removeUnreferencedResourcesHelper(
|
||||||
QPDFPageObjectHelper ph)
|
QPDFPageObjectHelper ph, std::set<std::string>& unresolved)
|
||||||
{
|
{
|
||||||
|
bool is_page = (! ph.oh.isFormXObject());
|
||||||
|
if (! is_page)
|
||||||
|
{
|
||||||
|
QTC::TC("qpdf", "QPDFPageObjectHelper filter form xobject");
|
||||||
|
}
|
||||||
|
|
||||||
NameWatcher nw;
|
NameWatcher nw;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@ -714,16 +720,17 @@ QPDFPageObjectHelper::removeUnreferencedResourcesHelper(
|
|||||||
{
|
{
|
||||||
ph.oh.warnIfPossible(
|
ph.oh.warnIfPossible(
|
||||||
std::string("Unable to parse content stream: ") + e.what() +
|
std::string("Unable to parse content stream: ") + e.what() +
|
||||||
"; not attempting to remove unreferenced objects from this page");
|
"; not attempting to remove unreferenced objects"
|
||||||
return;
|
" from this object");
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
if (nw.saw_bad)
|
if (nw.saw_bad)
|
||||||
{
|
{
|
||||||
QTC::TC("qpdf", "QPDFPageObjectHelper bad token finding names");
|
QTC::TC("qpdf", "QPDFPageObjectHelper bad token finding names");
|
||||||
ph.oh.warnIfPossible(
|
ph.oh.warnIfPossible(
|
||||||
"Bad token found while scanning content stream; "
|
"Bad token found while scanning content stream; "
|
||||||
"not attempting to remove unreferenced objects from this page");
|
"not attempting to remove unreferenced objects from this object");
|
||||||
return;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// We will walk through /Font and /XObject dictionaries, removing
|
// We will walk through /Font and /XObject dictionaries, removing
|
||||||
@ -733,6 +740,7 @@ QPDFPageObjectHelper::removeUnreferencedResourcesHelper(
|
|||||||
// of mutating the one it was copied from.
|
// of mutating the one it was copied from.
|
||||||
QPDFObjectHandle resources = ph.getAttribute("/Resources", true);
|
QPDFObjectHandle resources = ph.getAttribute("/Resources", true);
|
||||||
std::vector<QPDFObjectHandle> rdicts;
|
std::vector<QPDFObjectHandle> rdicts;
|
||||||
|
std::set<std::string> known_names;
|
||||||
if (resources.isDictionary())
|
if (resources.isDictionary())
|
||||||
{
|
{
|
||||||
std::vector<std::string> to_filter = {"/Font", "/XObject"};
|
std::vector<std::string> to_filter = {"/Font", "/XObject"};
|
||||||
@ -744,33 +752,86 @@ QPDFPageObjectHelper::removeUnreferencedResourcesHelper(
|
|||||||
dict = dict.shallowCopy();
|
dict = dict.shallowCopy();
|
||||||
resources.replaceKey(iter, dict);
|
resources.replaceKey(iter, dict);
|
||||||
rdicts.push_back(dict);
|
rdicts.push_back(dict);
|
||||||
|
auto keys = dict.getKeys();
|
||||||
|
known_names.insert(keys.begin(), keys.end());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::set<std::string> local_unresolved;
|
||||||
|
for (auto const& name: nw.names)
|
||||||
|
{
|
||||||
|
if (! known_names.count(name))
|
||||||
|
{
|
||||||
|
unresolved.insert(name);
|
||||||
|
local_unresolved.insert(name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Older versions of the PDF spec allowed form XObjects to omit
|
||||||
|
// their resources dictionaries, in which case names were resolved
|
||||||
|
// from the containing page. This behavior seems to be widely
|
||||||
|
// supported by viewers. If a form XObjects has a resources
|
||||||
|
// dictionary and has some unresolved names, some viewers fail to
|
||||||
|
// resolve them, and others allow them to be inherited from the
|
||||||
|
// page or from another form XObjects that contains them. Since
|
||||||
|
// this behavior is inconsistent across viewers, we consider an
|
||||||
|
// unresolved name when a resources dictionary is present to be
|
||||||
|
// reason not to remove unreferenced resources. An unresolved name
|
||||||
|
// in the absence of a resource dictionary is not considered a
|
||||||
|
// problem. For form XObjects, we just accumulate a list of
|
||||||
|
// unresolved names, and for page objects, we avoid removing any
|
||||||
|
// such names found in nested form XObjects.
|
||||||
|
|
||||||
|
if ((! local_unresolved.empty()) && resources.isDictionary())
|
||||||
|
{
|
||||||
|
QTC::TC("qpdf", "QPDFPageObjectHelper unresolved names");
|
||||||
|
ph.oh.warnIfPossible(
|
||||||
|
"Unresolved names found while scanning content stream; "
|
||||||
|
"not attempting to remove unreferenced objects from this object");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
for (auto& dict: rdicts)
|
for (auto& dict: rdicts)
|
||||||
{
|
{
|
||||||
for (auto const& key: dict.getKeys())
|
for (auto const& key: dict.getKeys())
|
||||||
{
|
{
|
||||||
if (! nw.names.count(key))
|
if (is_page && unresolved.count(key))
|
||||||
|
{
|
||||||
|
// This name is referenced by some nested form
|
||||||
|
// xobject, so don't remove it.
|
||||||
|
QTC::TC("qpdf", "QPDFPageObjectHelper resolving unresolved");
|
||||||
|
}
|
||||||
|
else if (! nw.names.count(key))
|
||||||
{
|
{
|
||||||
dict.removeKey(key);
|
dict.removeKey(key);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
QPDFPageObjectHelper::removeUnreferencedResources()
|
QPDFPageObjectHelper::removeUnreferencedResources()
|
||||||
{
|
{
|
||||||
|
// Accumulate a list of unresolved names across all nested form
|
||||||
|
// XObjects.
|
||||||
|
std::set<std::string> unresolved;
|
||||||
|
bool any_failures = false;
|
||||||
forEachFormXObject(
|
forEachFormXObject(
|
||||||
true,
|
true,
|
||||||
[](
|
[&any_failures, &unresolved](
|
||||||
QPDFObjectHandle& obj, QPDFObjectHandle&, std::string const&)
|
QPDFObjectHandle& obj, QPDFObjectHandle&, std::string const&)
|
||||||
{
|
{
|
||||||
QTC::TC("qpdf", "QPDFPageObjectHelper filter form xobject");
|
if (! removeUnreferencedResourcesHelper(
|
||||||
removeUnreferencedResourcesHelper(QPDFPageObjectHelper(obj));
|
QPDFPageObjectHelper(obj), unresolved))
|
||||||
|
{
|
||||||
|
any_failures = true;
|
||||||
|
}
|
||||||
});
|
});
|
||||||
removeUnreferencedResourcesHelper(*this);
|
if (this->oh.isFormXObject() || (! any_failures))
|
||||||
|
{
|
||||||
|
removeUnreferencedResourcesHelper(*this, unresolved);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
QPDFPageObjectHelper
|
QPDFPageObjectHelper
|
||||||
|
@ -4887,6 +4887,16 @@ print "\n";
|
|||||||
Bug Fixes
|
Bug Fixes
|
||||||
</para>
|
</para>
|
||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
If a form XObject lacks a resources dictionary, consider any
|
||||||
|
names in that form XObject to be referenced from the
|
||||||
|
containing page. This is compliant with older PDF versions.
|
||||||
|
Also detect if any form XObjects have any unresolved names
|
||||||
|
and, if so, don't remove unreferenced resources from them or
|
||||||
|
from the page that contains them.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>
|
<para>
|
||||||
Properly handle strings if they appear in inline image
|
Properly handle strings if they appear in inline image
|
||||||
|
@ -566,3 +566,5 @@ NNTree non-flat tree is empty after remove 0
|
|||||||
NNTree remove walking up tree 0
|
NNTree remove walking up tree 0
|
||||||
NNTree erased last item in tree 0
|
NNTree erased last item in tree 0
|
||||||
NNTree remove limits from root 0
|
NNTree remove limits from root 0
|
||||||
|
QPDFPageObjectHelper unresolved names 0
|
||||||
|
QPDFPageObjectHelper resolving unresolved 0
|
||||||
|
@ -1783,8 +1783,8 @@ my @sp_cases = (
|
|||||||
[1, 'broken data', '--pages broken-lzw.pdf --', 'split-out.pdf',
|
[1, 'broken data', '--pages broken-lzw.pdf --', 'split-out.pdf',
|
||||||
{$td->FILE => "broken-lzw.out", $td->EXIT_STATUS => 3}],
|
{$td->FILE => "broken-lzw.out", $td->EXIT_STATUS => 3}],
|
||||||
);
|
);
|
||||||
$n_tests += 36;
|
$n_tests += 43;
|
||||||
$n_compare_pdfs += 1;
|
$n_compare_pdfs += 2;
|
||||||
for (@sp_cases)
|
for (@sp_cases)
|
||||||
{
|
{
|
||||||
$n_tests += 1 + $_->[0];
|
$n_tests += 1 + $_->[0];
|
||||||
@ -1943,6 +1943,38 @@ foreach my $i (qw(1 2))
|
|||||||
{$td->FILE => "shared-form-xobject-split-$i.pdf"});
|
{$td->FILE => "shared-form-xobject-split-$i.pdf"});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
my @fo_resources = (['form-xobjects-no-resources', 0],
|
||||||
|
['form-xobjects-some-resources1', 3],
|
||||||
|
['form-xobjects-some-resources2', 3]);
|
||||||
|
foreach my $d (@fo_resources)
|
||||||
|
{
|
||||||
|
my ($f, $status) = @$d;
|
||||||
|
my $expout = ($status == 0 ?
|
||||||
|
{$td->STRING => ""} :
|
||||||
|
{$td->FILE => "$f.out"});
|
||||||
|
$expout->{$td->EXIT_STATUS} = $status;
|
||||||
|
$td->runtest("split $f",
|
||||||
|
{$td->COMMAND =>
|
||||||
|
"qpdf --empty --static-id --pages $f.pdf 1 --" .
|
||||||
|
" --remove-unreferenced-resources=yes a.pdf"},
|
||||||
|
$expout, $td->NORMALIZE_NEWLINES);
|
||||||
|
$td->runtest("check output ($f)",
|
||||||
|
{$td->FILE => "a.pdf"},
|
||||||
|
{$td->FILE => "$f-out.pdf"});
|
||||||
|
if ($status == 0)
|
||||||
|
{
|
||||||
|
compare_pdfs("$f.pdf", "a.pdf");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$td->runtest("no warn with pages warnings",
|
||||||
|
{$td->COMMAND =>
|
||||||
|
"qpdf --no-warn --empty --static-id".
|
||||||
|
" --pages form-xobjects-some-resources1.pdf 1 --" .
|
||||||
|
" --remove-unreferenced-resources=yes a.pdf"},
|
||||||
|
{$td->STRING => "", $td->EXIT_STATUS => 3},
|
||||||
|
$td->NORMALIZE_NEWLINES);
|
||||||
|
|
||||||
show_ntests();
|
show_ntests();
|
||||||
# ----------
|
# ----------
|
||||||
$td->notify("--- Keep Files Open ---");
|
$td->notify("--- Keep Files Open ---");
|
||||||
|
BIN
qpdf/qtest/qpdf/form-xobjects-no-resources-out.pdf
Normal file
BIN
qpdf/qtest/qpdf/form-xobjects-no-resources-out.pdf
Normal file
Binary file not shown.
325
qpdf/qtest/qpdf/form-xobjects-no-resources.pdf
Normal file
325
qpdf/qtest/qpdf/form-xobjects-no-resources.pdf
Normal file
@ -0,0 +1,325 @@
|
|||||||
|
%PDF-1.3
|
||||||
|
%¿÷¢þ
|
||||||
|
%QDF-1.0
|
||||||
|
|
||||||
|
1 0 obj
|
||||||
|
<<
|
||||||
|
/Pages 2 0 R
|
||||||
|
/Type /Catalog
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
|
||||||
|
2 0 obj
|
||||||
|
<<
|
||||||
|
/Count 1
|
||||||
|
/Kids [
|
||||||
|
3 0 R
|
||||||
|
]
|
||||||
|
/Resources <<
|
||||||
|
/Font <<
|
||||||
|
/F1 4 0 R
|
||||||
|
>>
|
||||||
|
/ProcSet 5 0 R
|
||||||
|
/XObject <<
|
||||||
|
/Fx1 6 0 R
|
||||||
|
/Fx2 8 0 R
|
||||||
|
/Im1 10 0 R
|
||||||
|
/Im2 12 0 R
|
||||||
|
/Im3 14 0 R
|
||||||
|
/Im4 16 0 R
|
||||||
|
/Im5 18 0 R
|
||||||
|
/Im6 20 0 R
|
||||||
|
/ImX 20 0 R
|
||||||
|
>>
|
||||||
|
>>
|
||||||
|
/Type /Pages
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
|
||||||
|
%% Page 1
|
||||||
|
3 0 obj
|
||||||
|
<<
|
||||||
|
/Contents 22 0 R
|
||||||
|
/MediaBox [
|
||||||
|
0
|
||||||
|
0
|
||||||
|
612
|
||||||
|
792
|
||||||
|
]
|
||||||
|
/Parent 2 0 R
|
||||||
|
/Type /Page
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
|
||||||
|
4 0 obj
|
||||||
|
<<
|
||||||
|
/BaseFont /Helvetica
|
||||||
|
/Encoding /WinAnsiEncoding
|
||||||
|
/Name /F1
|
||||||
|
/Subtype /Type1
|
||||||
|
/Type /Font
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
|
||||||
|
5 0 obj
|
||||||
|
[
|
||||||
|
/PDF
|
||||||
|
/Text
|
||||||
|
/ImageC
|
||||||
|
]
|
||||||
|
endobj
|
||||||
|
|
||||||
|
6 0 obj
|
||||||
|
<<
|
||||||
|
/BBox [
|
||||||
|
0
|
||||||
|
0
|
||||||
|
300
|
||||||
|
500
|
||||||
|
]
|
||||||
|
/Subtype /Form
|
||||||
|
/Type /XObject
|
||||||
|
/Length 7 0 R
|
||||||
|
>>
|
||||||
|
stream
|
||||||
|
BT
|
||||||
|
/F1 24 Tf
|
||||||
|
0 320 Td
|
||||||
|
(FX1) Tj
|
||||||
|
ET
|
||||||
|
q
|
||||||
|
100 0 0 100 000 200 cm
|
||||||
|
/Im3 Do
|
||||||
|
Q
|
||||||
|
q
|
||||||
|
100 0 0 100 120 200 cm
|
||||||
|
/Im4 Do
|
||||||
|
Q
|
||||||
|
q
|
||||||
|
1.00000 0.00000 0.00000 1.00000 0.00000 0.00000 cm
|
||||||
|
/Fx2 Do
|
||||||
|
Q
|
||||||
|
endstream
|
||||||
|
endobj
|
||||||
|
|
||||||
|
7 0 obj
|
||||||
|
173
|
||||||
|
endobj
|
||||||
|
|
||||||
|
8 0 obj
|
||||||
|
<<
|
||||||
|
/BBox [
|
||||||
|
0
|
||||||
|
0
|
||||||
|
300
|
||||||
|
200
|
||||||
|
]
|
||||||
|
/Subtype /Form
|
||||||
|
/Type /XObject
|
||||||
|
/Length 9 0 R
|
||||||
|
>>
|
||||||
|
stream
|
||||||
|
BT
|
||||||
|
/F1 24 Tf
|
||||||
|
0 120 Td
|
||||||
|
(FX2) Tj
|
||||||
|
ET
|
||||||
|
q
|
||||||
|
100 0 0 100 0 0 cm
|
||||||
|
/Im5 Do
|
||||||
|
Q
|
||||||
|
q
|
||||||
|
100 0 0 100 120 0 cm
|
||||||
|
/Im6 Do
|
||||||
|
Q
|
||||||
|
endstream
|
||||||
|
endobj
|
||||||
|
|
||||||
|
9 0 obj
|
||||||
|
104
|
||||||
|
endobj
|
||||||
|
|
||||||
|
10 0 obj
|
||||||
|
<<
|
||||||
|
/BitsPerComponent 8
|
||||||
|
/ColorSpace /DeviceGray
|
||||||
|
/Height 15
|
||||||
|
/Subtype /Image
|
||||||
|
/Type /XObject
|
||||||
|
/Width 15
|
||||||
|
/Length 11 0 R
|
||||||
|
>>
|
||||||
|
stream
|
||||||
|
`````@@@@@@@@@@`````@@@@@@@@@@`````@@@@@@@@@@`````@@@@@@@@@@`````@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
||||||
|
endstream
|
||||||
|
endobj
|
||||||
|
|
||||||
|
%QDF: ignore_newline
|
||||||
|
11 0 obj
|
||||||
|
225
|
||||||
|
endobj
|
||||||
|
|
||||||
|
12 0 obj
|
||||||
|
<<
|
||||||
|
/BitsPerComponent 8
|
||||||
|
/ColorSpace /DeviceGray
|
||||||
|
/Height 15
|
||||||
|
/Subtype /Image
|
||||||
|
/Type /XObject
|
||||||
|
/Width 15
|
||||||
|
/Length 13 0 R
|
||||||
|
>>
|
||||||
|
stream
|
||||||
|
@@@@@`````@@@@@@@@@@`````@@@@@@@@@@`````@@@@@@@@@@`````@@@@@@@@@@`````@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
||||||
|
endstream
|
||||||
|
endobj
|
||||||
|
|
||||||
|
%QDF: ignore_newline
|
||||||
|
13 0 obj
|
||||||
|
225
|
||||||
|
endobj
|
||||||
|
|
||||||
|
14 0 obj
|
||||||
|
<<
|
||||||
|
/BitsPerComponent 8
|
||||||
|
/ColorSpace /DeviceGray
|
||||||
|
/Height 15
|
||||||
|
/Subtype /Image
|
||||||
|
/Type /XObject
|
||||||
|
/Width 15
|
||||||
|
/Length 15 0 R
|
||||||
|
>>
|
||||||
|
stream
|
||||||
|
@@@@@@@@@@`````@@@@@@@@@@`````@@@@@@@@@@`````@@@@@@@@@@`````@@@@@@@@@@`````@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
||||||
|
endstream
|
||||||
|
endobj
|
||||||
|
|
||||||
|
%QDF: ignore_newline
|
||||||
|
15 0 obj
|
||||||
|
225
|
||||||
|
endobj
|
||||||
|
|
||||||
|
16 0 obj
|
||||||
|
<<
|
||||||
|
/BitsPerComponent 8
|
||||||
|
/ColorSpace /DeviceGray
|
||||||
|
/Height 15
|
||||||
|
/Subtype /Image
|
||||||
|
/Type /XObject
|
||||||
|
/Width 15
|
||||||
|
/Length 17 0 R
|
||||||
|
>>
|
||||||
|
stream
|
||||||
|
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@`````@@@@@@@@@@`````@@@@@@@@@@`````@@@@@@@@@@`````@@@@@@@@@@`````@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
||||||
|
endstream
|
||||||
|
endobj
|
||||||
|
|
||||||
|
%QDF: ignore_newline
|
||||||
|
17 0 obj
|
||||||
|
225
|
||||||
|
endobj
|
||||||
|
|
||||||
|
18 0 obj
|
||||||
|
<<
|
||||||
|
/BitsPerComponent 8
|
||||||
|
/ColorSpace /DeviceGray
|
||||||
|
/Height 15
|
||||||
|
/Subtype /Image
|
||||||
|
/Type /XObject
|
||||||
|
/Width 15
|
||||||
|
/Length 19 0 R
|
||||||
|
>>
|
||||||
|
stream
|
||||||
|
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@`````@@@@@@@@@@`````@@@@@@@@@@`````@@@@@@@@@@`````@@@@@@@@@@`````@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
||||||
|
endstream
|
||||||
|
endobj
|
||||||
|
|
||||||
|
%QDF: ignore_newline
|
||||||
|
19 0 obj
|
||||||
|
225
|
||||||
|
endobj
|
||||||
|
|
||||||
|
20 0 obj
|
||||||
|
<<
|
||||||
|
/BitsPerComponent 8
|
||||||
|
/ColorSpace /DeviceGray
|
||||||
|
/Height 15
|
||||||
|
/Subtype /Image
|
||||||
|
/Type /XObject
|
||||||
|
/Width 15
|
||||||
|
/Length 21 0 R
|
||||||
|
>>
|
||||||
|
stream
|
||||||
|
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@`````@@@@@@@@@@`````@@@@@@@@@@`````@@@@@@@@@@`````@@@@@@@@@@`````@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
||||||
|
endstream
|
||||||
|
endobj
|
||||||
|
|
||||||
|
%QDF: ignore_newline
|
||||||
|
21 0 obj
|
||||||
|
225
|
||||||
|
endobj
|
||||||
|
|
||||||
|
%% Contents for page 1
|
||||||
|
22 0 obj
|
||||||
|
<<
|
||||||
|
/Length 23 0 R
|
||||||
|
>>
|
||||||
|
stream
|
||||||
|
BT
|
||||||
|
/F1 24 Tf
|
||||||
|
72 720 Td
|
||||||
|
(Page) Tj
|
||||||
|
ET
|
||||||
|
q
|
||||||
|
100 0 0 100 72 600 cm
|
||||||
|
/Im1 Do
|
||||||
|
Q
|
||||||
|
q
|
||||||
|
100 0 0 100 192 600 cm
|
||||||
|
/Im2 Do
|
||||||
|
Q
|
||||||
|
q
|
||||||
|
1.00000 0.00000 0.00000 1.00000 72.00000 200.00000 cm
|
||||||
|
/Fx1 Do
|
||||||
|
Q
|
||||||
|
endstream
|
||||||
|
endobj
|
||||||
|
|
||||||
|
23 0 obj
|
||||||
|
177
|
||||||
|
endobj
|
||||||
|
|
||||||
|
xref
|
||||||
|
0 24
|
||||||
|
0000000000 65535 f
|
||||||
|
0000000025 00000 n
|
||||||
|
0000000079 00000 n
|
||||||
|
0000000420 00000 n
|
||||||
|
0000000537 00000 n
|
||||||
|
0000000655 00000 n
|
||||||
|
0000000700 00000 n
|
||||||
|
0000001004 00000 n
|
||||||
|
0000001024 00000 n
|
||||||
|
0000001259 00000 n
|
||||||
|
0000001279 00000 n
|
||||||
|
0000001691 00000 n
|
||||||
|
0000001712 00000 n
|
||||||
|
0000002124 00000 n
|
||||||
|
0000002145 00000 n
|
||||||
|
0000002557 00000 n
|
||||||
|
0000002578 00000 n
|
||||||
|
0000002990 00000 n
|
||||||
|
0000003011 00000 n
|
||||||
|
0000003423 00000 n
|
||||||
|
0000003444 00000 n
|
||||||
|
0000003856 00000 n
|
||||||
|
0000003900 00000 n
|
||||||
|
0000004134 00000 n
|
||||||
|
trailer <<
|
||||||
|
/Root 1 0 R
|
||||||
|
/Size 24
|
||||||
|
/ID [<55269d37282af9edc76855e4cb859987><5044e8073c04a0be007e587c761cce26>]
|
||||||
|
>>
|
||||||
|
startxref
|
||||||
|
4155
|
||||||
|
%%EOF
|
BIN
qpdf/qtest/qpdf/form-xobjects-some-resources1-out.pdf
Normal file
BIN
qpdf/qtest/qpdf/form-xobjects-some-resources1-out.pdf
Normal file
Binary file not shown.
2
qpdf/qtest/qpdf/form-xobjects-some-resources1.out
Normal file
2
qpdf/qtest/qpdf/form-xobjects-some-resources1.out
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
WARNING: form-xobjects-some-resources1.pdf, stream object 8 0: Unresolved names found while scanning content stream; not attempting to remove unreferenced objects from this object
|
||||||
|
qpdf: operation succeeded with warnings; resulting file may have some problems
|
331
qpdf/qtest/qpdf/form-xobjects-some-resources1.pdf
Normal file
331
qpdf/qtest/qpdf/form-xobjects-some-resources1.pdf
Normal file
@ -0,0 +1,331 @@
|
|||||||
|
%PDF-1.3
|
||||||
|
%¿÷¢þ
|
||||||
|
%QDF-1.0
|
||||||
|
|
||||||
|
1 0 obj
|
||||||
|
<<
|
||||||
|
/Pages 2 0 R
|
||||||
|
/Type /Catalog
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
|
||||||
|
2 0 obj
|
||||||
|
<<
|
||||||
|
/Count 1
|
||||||
|
/Kids [
|
||||||
|
3 0 R
|
||||||
|
]
|
||||||
|
/Resources <<
|
||||||
|
/Font <<
|
||||||
|
/F1 4 0 R
|
||||||
|
>>
|
||||||
|
/ProcSet 5 0 R
|
||||||
|
/XObject <<
|
||||||
|
/Fx1 6 0 R
|
||||||
|
/Fx2 8 0 R
|
||||||
|
/Im1 10 0 R
|
||||||
|
/Im2 12 0 R
|
||||||
|
/Im3 14 0 R
|
||||||
|
/Im4 16 0 R
|
||||||
|
/Im5 18 0 R
|
||||||
|
/Im6 20 0 R
|
||||||
|
/ImX 20 0 R
|
||||||
|
>>
|
||||||
|
>>
|
||||||
|
/Type /Pages
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
|
||||||
|
%% Page 1
|
||||||
|
3 0 obj
|
||||||
|
<<
|
||||||
|
/Contents 22 0 R
|
||||||
|
/MediaBox [
|
||||||
|
0
|
||||||
|
0
|
||||||
|
612
|
||||||
|
792
|
||||||
|
]
|
||||||
|
/Parent 2 0 R
|
||||||
|
/Type /Page
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
|
||||||
|
4 0 obj
|
||||||
|
<<
|
||||||
|
/BaseFont /Helvetica
|
||||||
|
/Encoding /WinAnsiEncoding
|
||||||
|
/Name /F1
|
||||||
|
/Subtype /Type1
|
||||||
|
/Type /Font
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
|
||||||
|
5 0 obj
|
||||||
|
[
|
||||||
|
/PDF
|
||||||
|
/Text
|
||||||
|
/ImageC
|
||||||
|
]
|
||||||
|
endobj
|
||||||
|
|
||||||
|
6 0 obj
|
||||||
|
<<
|
||||||
|
/BBox [
|
||||||
|
0
|
||||||
|
0
|
||||||
|
300
|
||||||
|
500
|
||||||
|
]
|
||||||
|
/Subtype /Form
|
||||||
|
/Type /XObject
|
||||||
|
/Length 7 0 R
|
||||||
|
>>
|
||||||
|
stream
|
||||||
|
BT
|
||||||
|
/F1 24 Tf
|
||||||
|
0 320 Td
|
||||||
|
(FX1) Tj
|
||||||
|
ET
|
||||||
|
q
|
||||||
|
100 0 0 100 000 200 cm
|
||||||
|
/Im3 Do
|
||||||
|
Q
|
||||||
|
q
|
||||||
|
100 0 0 100 120 200 cm
|
||||||
|
/Im4 Do
|
||||||
|
Q
|
||||||
|
q
|
||||||
|
1.00000 0.00000 0.00000 1.00000 0.00000 0.00000 cm
|
||||||
|
/Fx2 Do
|
||||||
|
Q
|
||||||
|
endstream
|
||||||
|
endobj
|
||||||
|
|
||||||
|
7 0 obj
|
||||||
|
173
|
||||||
|
endobj
|
||||||
|
|
||||||
|
8 0 obj
|
||||||
|
<<
|
||||||
|
/BBox [
|
||||||
|
0
|
||||||
|
0
|
||||||
|
300
|
||||||
|
200
|
||||||
|
]
|
||||||
|
/Subtype /Form
|
||||||
|
/Type /XObject
|
||||||
|
/Length 9 0 R
|
||||||
|
/Resources <<
|
||||||
|
/XObject <<
|
||||||
|
/Im1 20 0 R
|
||||||
|
/ImY 20 0 R
|
||||||
|
>>
|
||||||
|
>>
|
||||||
|
>>
|
||||||
|
stream
|
||||||
|
BT
|
||||||
|
/F1 24 Tf
|
||||||
|
0 120 Td
|
||||||
|
(FX2) Tj
|
||||||
|
ET
|
||||||
|
q
|
||||||
|
100 0 0 100 0 0 cm
|
||||||
|
/Im5 Do
|
||||||
|
Q
|
||||||
|
q
|
||||||
|
100 0 0 100 120 0 cm
|
||||||
|
/Im1 Do
|
||||||
|
Q
|
||||||
|
endstream
|
||||||
|
endobj
|
||||||
|
|
||||||
|
9 0 obj
|
||||||
|
104
|
||||||
|
endobj
|
||||||
|
|
||||||
|
10 0 obj
|
||||||
|
<<
|
||||||
|
/BitsPerComponent 8
|
||||||
|
/ColorSpace /DeviceGray
|
||||||
|
/Height 15
|
||||||
|
/Subtype /Image
|
||||||
|
/Type /XObject
|
||||||
|
/Width 15
|
||||||
|
/Length 11 0 R
|
||||||
|
>>
|
||||||
|
stream
|
||||||
|
`````@@@@@@@@@@`````@@@@@@@@@@`````@@@@@@@@@@`````@@@@@@@@@@`````@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
||||||
|
endstream
|
||||||
|
endobj
|
||||||
|
|
||||||
|
%QDF: ignore_newline
|
||||||
|
11 0 obj
|
||||||
|
225
|
||||||
|
endobj
|
||||||
|
|
||||||
|
12 0 obj
|
||||||
|
<<
|
||||||
|
/BitsPerComponent 8
|
||||||
|
/ColorSpace /DeviceGray
|
||||||
|
/Height 15
|
||||||
|
/Subtype /Image
|
||||||
|
/Type /XObject
|
||||||
|
/Width 15
|
||||||
|
/Length 13 0 R
|
||||||
|
>>
|
||||||
|
stream
|
||||||
|
@@@@@`````@@@@@@@@@@`````@@@@@@@@@@`````@@@@@@@@@@`````@@@@@@@@@@`````@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
||||||
|
endstream
|
||||||
|
endobj
|
||||||
|
|
||||||
|
%QDF: ignore_newline
|
||||||
|
13 0 obj
|
||||||
|
225
|
||||||
|
endobj
|
||||||
|
|
||||||
|
14 0 obj
|
||||||
|
<<
|
||||||
|
/BitsPerComponent 8
|
||||||
|
/ColorSpace /DeviceGray
|
||||||
|
/Height 15
|
||||||
|
/Subtype /Image
|
||||||
|
/Type /XObject
|
||||||
|
/Width 15
|
||||||
|
/Length 15 0 R
|
||||||
|
>>
|
||||||
|
stream
|
||||||
|
@@@@@@@@@@`````@@@@@@@@@@`````@@@@@@@@@@`````@@@@@@@@@@`````@@@@@@@@@@`````@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
||||||
|
endstream
|
||||||
|
endobj
|
||||||
|
|
||||||
|
%QDF: ignore_newline
|
||||||
|
15 0 obj
|
||||||
|
225
|
||||||
|
endobj
|
||||||
|
|
||||||
|
16 0 obj
|
||||||
|
<<
|
||||||
|
/BitsPerComponent 8
|
||||||
|
/ColorSpace /DeviceGray
|
||||||
|
/Height 15
|
||||||
|
/Subtype /Image
|
||||||
|
/Type /XObject
|
||||||
|
/Width 15
|
||||||
|
/Length 17 0 R
|
||||||
|
>>
|
||||||
|
stream
|
||||||
|
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@`````@@@@@@@@@@`````@@@@@@@@@@`````@@@@@@@@@@`````@@@@@@@@@@`````@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
||||||
|
endstream
|
||||||
|
endobj
|
||||||
|
|
||||||
|
%QDF: ignore_newline
|
||||||
|
17 0 obj
|
||||||
|
225
|
||||||
|
endobj
|
||||||
|
|
||||||
|
18 0 obj
|
||||||
|
<<
|
||||||
|
/BitsPerComponent 8
|
||||||
|
/ColorSpace /DeviceGray
|
||||||
|
/Height 15
|
||||||
|
/Subtype /Image
|
||||||
|
/Type /XObject
|
||||||
|
/Width 15
|
||||||
|
/Length 19 0 R
|
||||||
|
>>
|
||||||
|
stream
|
||||||
|
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@`````@@@@@@@@@@`````@@@@@@@@@@`````@@@@@@@@@@`````@@@@@@@@@@`````@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
||||||
|
endstream
|
||||||
|
endobj
|
||||||
|
|
||||||
|
%QDF: ignore_newline
|
||||||
|
19 0 obj
|
||||||
|
225
|
||||||
|
endobj
|
||||||
|
|
||||||
|
20 0 obj
|
||||||
|
<<
|
||||||
|
/BitsPerComponent 8
|
||||||
|
/ColorSpace /DeviceGray
|
||||||
|
/Height 15
|
||||||
|
/Subtype /Image
|
||||||
|
/Type /XObject
|
||||||
|
/Width 15
|
||||||
|
/Length 21 0 R
|
||||||
|
>>
|
||||||
|
stream
|
||||||
|
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@`````@@@@@@@@@@`````@@@@@@@@@@`````@@@@@@@@@@`````@@@@@@@@@@`````@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
||||||
|
endstream
|
||||||
|
endobj
|
||||||
|
|
||||||
|
%QDF: ignore_newline
|
||||||
|
21 0 obj
|
||||||
|
225
|
||||||
|
endobj
|
||||||
|
|
||||||
|
%% Contents for page 1
|
||||||
|
22 0 obj
|
||||||
|
<<
|
||||||
|
/Length 23 0 R
|
||||||
|
>>
|
||||||
|
stream
|
||||||
|
BT
|
||||||
|
/F1 24 Tf
|
||||||
|
72 720 Td
|
||||||
|
(Page) Tj
|
||||||
|
ET
|
||||||
|
q
|
||||||
|
100 0 0 100 72 600 cm
|
||||||
|
/Im1 Do
|
||||||
|
Q
|
||||||
|
q
|
||||||
|
100 0 0 100 192 600 cm
|
||||||
|
/Im2 Do
|
||||||
|
Q
|
||||||
|
q
|
||||||
|
1.00000 0.00000 0.00000 1.00000 72.00000 200.00000 cm
|
||||||
|
/Fx1 Do
|
||||||
|
Q
|
||||||
|
endstream
|
||||||
|
endobj
|
||||||
|
|
||||||
|
23 0 obj
|
||||||
|
177
|
||||||
|
endobj
|
||||||
|
|
||||||
|
xref
|
||||||
|
0 24
|
||||||
|
0000000000 65535 f
|
||||||
|
0000000025 00000 n
|
||||||
|
0000000079 00000 n
|
||||||
|
0000000420 00000 n
|
||||||
|
0000000537 00000 n
|
||||||
|
0000000655 00000 n
|
||||||
|
0000000700 00000 n
|
||||||
|
0000001004 00000 n
|
||||||
|
0000001024 00000 n
|
||||||
|
0000001339 00000 n
|
||||||
|
0000001359 00000 n
|
||||||
|
0000001771 00000 n
|
||||||
|
0000001792 00000 n
|
||||||
|
0000002204 00000 n
|
||||||
|
0000002225 00000 n
|
||||||
|
0000002637 00000 n
|
||||||
|
0000002658 00000 n
|
||||||
|
0000003070 00000 n
|
||||||
|
0000003091 00000 n
|
||||||
|
0000003503 00000 n
|
||||||
|
0000003524 00000 n
|
||||||
|
0000003936 00000 n
|
||||||
|
0000003980 00000 n
|
||||||
|
0000004214 00000 n
|
||||||
|
trailer <<
|
||||||
|
/Root 1 0 R
|
||||||
|
/Size 24
|
||||||
|
/ID [<55269d37282af9edc76855e4cb859987><5044e8073c04a0be007e587c761cce26>]
|
||||||
|
>>
|
||||||
|
startxref
|
||||||
|
4235
|
||||||
|
%%EOF
|
BIN
qpdf/qtest/qpdf/form-xobjects-some-resources2-out.pdf
Normal file
BIN
qpdf/qtest/qpdf/form-xobjects-some-resources2-out.pdf
Normal file
Binary file not shown.
3
qpdf/qtest/qpdf/form-xobjects-some-resources2.out
Normal file
3
qpdf/qtest/qpdf/form-xobjects-some-resources2.out
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
WARNING: form-xobjects-some-resources2.pdf, stream object 6 0: Unresolved names found while scanning content stream; not attempting to remove unreferenced objects from this object
|
||||||
|
WARNING: form-xobjects-some-resources2.pdf, stream object 8 0: Unresolved names found while scanning content stream; not attempting to remove unreferenced objects from this object
|
||||||
|
qpdf: operation succeeded with warnings; resulting file may have some problems
|
336
qpdf/qtest/qpdf/form-xobjects-some-resources2.pdf
Normal file
336
qpdf/qtest/qpdf/form-xobjects-some-resources2.pdf
Normal file
@ -0,0 +1,336 @@
|
|||||||
|
%PDF-1.3
|
||||||
|
%¿÷¢þ
|
||||||
|
%QDF-1.0
|
||||||
|
|
||||||
|
1 0 obj
|
||||||
|
<<
|
||||||
|
/Pages 2 0 R
|
||||||
|
/Type /Catalog
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
|
||||||
|
2 0 obj
|
||||||
|
<<
|
||||||
|
/Count 1
|
||||||
|
/Kids [
|
||||||
|
3 0 R
|
||||||
|
]
|
||||||
|
/Resources <<
|
||||||
|
/Font <<
|
||||||
|
/F1 4 0 R
|
||||||
|
>>
|
||||||
|
/ProcSet 5 0 R
|
||||||
|
/XObject <<
|
||||||
|
/Fx1 6 0 R
|
||||||
|
/Fx2 8 0 R
|
||||||
|
/Im1 10 0 R
|
||||||
|
/Im2 12 0 R
|
||||||
|
/Im3 14 0 R
|
||||||
|
/Im4 16 0 R
|
||||||
|
/Im6 20 0 R
|
||||||
|
/ImX 20 0 R
|
||||||
|
>>
|
||||||
|
>>
|
||||||
|
/Type /Pages
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
|
||||||
|
%% Page 1
|
||||||
|
3 0 obj
|
||||||
|
<<
|
||||||
|
/Contents 22 0 R
|
||||||
|
/MediaBox [
|
||||||
|
0
|
||||||
|
0
|
||||||
|
612
|
||||||
|
792
|
||||||
|
]
|
||||||
|
/Parent 2 0 R
|
||||||
|
/Type /Page
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
|
||||||
|
4 0 obj
|
||||||
|
<<
|
||||||
|
/BaseFont /Helvetica
|
||||||
|
/Encoding /WinAnsiEncoding
|
||||||
|
/Name /F1
|
||||||
|
/Subtype /Type1
|
||||||
|
/Type /Font
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
|
||||||
|
5 0 obj
|
||||||
|
[
|
||||||
|
/PDF
|
||||||
|
/Text
|
||||||
|
/ImageC
|
||||||
|
]
|
||||||
|
endobj
|
||||||
|
|
||||||
|
6 0 obj
|
||||||
|
<<
|
||||||
|
/BBox [
|
||||||
|
0
|
||||||
|
0
|
||||||
|
300
|
||||||
|
500
|
||||||
|
]
|
||||||
|
/Subtype /Form
|
||||||
|
/Type /XObject
|
||||||
|
/Length 7 0 R
|
||||||
|
/Resources <<
|
||||||
|
/XObject <<
|
||||||
|
/Im5 18 0 R
|
||||||
|
/ImY 20 0 R
|
||||||
|
>>
|
||||||
|
>>
|
||||||
|
>>
|
||||||
|
stream
|
||||||
|
BT
|
||||||
|
/F1 24 Tf
|
||||||
|
0 320 Td
|
||||||
|
(FX1) Tj
|
||||||
|
ET
|
||||||
|
q
|
||||||
|
100 0 0 100 000 200 cm
|
||||||
|
/Im3 Do
|
||||||
|
Q
|
||||||
|
q
|
||||||
|
100 0 0 100 120 200 cm
|
||||||
|
/Im4 Do
|
||||||
|
Q
|
||||||
|
q
|
||||||
|
1.00000 0.00000 0.00000 1.00000 0.00000 0.00000 cm
|
||||||
|
/Fx2 Do
|
||||||
|
Q
|
||||||
|
endstream
|
||||||
|
endobj
|
||||||
|
|
||||||
|
7 0 obj
|
||||||
|
173
|
||||||
|
endobj
|
||||||
|
|
||||||
|
8 0 obj
|
||||||
|
<<
|
||||||
|
/BBox [
|
||||||
|
0
|
||||||
|
0
|
||||||
|
300
|
||||||
|
200
|
||||||
|
]
|
||||||
|
/Subtype /Form
|
||||||
|
/Type /XObject
|
||||||
|
/Length 9 0 R
|
||||||
|
/Resources <<
|
||||||
|
/XObject <<
|
||||||
|
/Im1 20 0 R
|
||||||
|
/ImZ 20 0 R
|
||||||
|
>>
|
||||||
|
>>
|
||||||
|
>>
|
||||||
|
stream
|
||||||
|
BT
|
||||||
|
/F1 24 Tf
|
||||||
|
0 120 Td
|
||||||
|
(FX2) Tj
|
||||||
|
ET
|
||||||
|
q
|
||||||
|
100 0 0 100 0 0 cm
|
||||||
|
/Im5 Do
|
||||||
|
Q
|
||||||
|
q
|
||||||
|
100 0 0 100 120 0 cm
|
||||||
|
/Im1 Do
|
||||||
|
Q
|
||||||
|
endstream
|
||||||
|
endobj
|
||||||
|
|
||||||
|
9 0 obj
|
||||||
|
104
|
||||||
|
endobj
|
||||||
|
|
||||||
|
10 0 obj
|
||||||
|
<<
|
||||||
|
/BitsPerComponent 8
|
||||||
|
/ColorSpace /DeviceGray
|
||||||
|
/Height 15
|
||||||
|
/Subtype /Image
|
||||||
|
/Type /XObject
|
||||||
|
/Width 15
|
||||||
|
/Length 11 0 R
|
||||||
|
>>
|
||||||
|
stream
|
||||||
|
`````@@@@@@@@@@`````@@@@@@@@@@`````@@@@@@@@@@`````@@@@@@@@@@`````@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
||||||
|
endstream
|
||||||
|
endobj
|
||||||
|
|
||||||
|
%QDF: ignore_newline
|
||||||
|
11 0 obj
|
||||||
|
225
|
||||||
|
endobj
|
||||||
|
|
||||||
|
12 0 obj
|
||||||
|
<<
|
||||||
|
/BitsPerComponent 8
|
||||||
|
/ColorSpace /DeviceGray
|
||||||
|
/Height 15
|
||||||
|
/Subtype /Image
|
||||||
|
/Type /XObject
|
||||||
|
/Width 15
|
||||||
|
/Length 13 0 R
|
||||||
|
>>
|
||||||
|
stream
|
||||||
|
@@@@@`````@@@@@@@@@@`````@@@@@@@@@@`````@@@@@@@@@@`````@@@@@@@@@@`````@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
||||||
|
endstream
|
||||||
|
endobj
|
||||||
|
|
||||||
|
%QDF: ignore_newline
|
||||||
|
13 0 obj
|
||||||
|
225
|
||||||
|
endobj
|
||||||
|
|
||||||
|
14 0 obj
|
||||||
|
<<
|
||||||
|
/BitsPerComponent 8
|
||||||
|
/ColorSpace /DeviceGray
|
||||||
|
/Height 15
|
||||||
|
/Subtype /Image
|
||||||
|
/Type /XObject
|
||||||
|
/Width 15
|
||||||
|
/Length 15 0 R
|
||||||
|
>>
|
||||||
|
stream
|
||||||
|
@@@@@@@@@@`````@@@@@@@@@@`````@@@@@@@@@@`````@@@@@@@@@@`````@@@@@@@@@@`````@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
||||||
|
endstream
|
||||||
|
endobj
|
||||||
|
|
||||||
|
%QDF: ignore_newline
|
||||||
|
15 0 obj
|
||||||
|
225
|
||||||
|
endobj
|
||||||
|
|
||||||
|
16 0 obj
|
||||||
|
<<
|
||||||
|
/BitsPerComponent 8
|
||||||
|
/ColorSpace /DeviceGray
|
||||||
|
/Height 15
|
||||||
|
/Subtype /Image
|
||||||
|
/Type /XObject
|
||||||
|
/Width 15
|
||||||
|
/Length 17 0 R
|
||||||
|
>>
|
||||||
|
stream
|
||||||
|
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@`````@@@@@@@@@@`````@@@@@@@@@@`````@@@@@@@@@@`````@@@@@@@@@@`````@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
||||||
|
endstream
|
||||||
|
endobj
|
||||||
|
|
||||||
|
%QDF: ignore_newline
|
||||||
|
17 0 obj
|
||||||
|
225
|
||||||
|
endobj
|
||||||
|
|
||||||
|
18 0 obj
|
||||||
|
<<
|
||||||
|
/BitsPerComponent 8
|
||||||
|
/ColorSpace /DeviceGray
|
||||||
|
/Height 15
|
||||||
|
/Subtype /Image
|
||||||
|
/Type /XObject
|
||||||
|
/Width 15
|
||||||
|
/Length 19 0 R
|
||||||
|
>>
|
||||||
|
stream
|
||||||
|
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@`````@@@@@@@@@@`````@@@@@@@@@@`````@@@@@@@@@@`````@@@@@@@@@@`````@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
||||||
|
endstream
|
||||||
|
endobj
|
||||||
|
|
||||||
|
%QDF: ignore_newline
|
||||||
|
19 0 obj
|
||||||
|
225
|
||||||
|
endobj
|
||||||
|
|
||||||
|
20 0 obj
|
||||||
|
<<
|
||||||
|
/BitsPerComponent 8
|
||||||
|
/ColorSpace /DeviceGray
|
||||||
|
/Height 15
|
||||||
|
/Subtype /Image
|
||||||
|
/Type /XObject
|
||||||
|
/Width 15
|
||||||
|
/Length 21 0 R
|
||||||
|
>>
|
||||||
|
stream
|
||||||
|
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@`````@@@@@@@@@@`````@@@@@@@@@@`````@@@@@@@@@@`````@@@@@@@@@@`````@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
||||||
|
endstream
|
||||||
|
endobj
|
||||||
|
|
||||||
|
%QDF: ignore_newline
|
||||||
|
21 0 obj
|
||||||
|
225
|
||||||
|
endobj
|
||||||
|
|
||||||
|
%% Contents for page 1
|
||||||
|
22 0 obj
|
||||||
|
<<
|
||||||
|
/Length 23 0 R
|
||||||
|
>>
|
||||||
|
stream
|
||||||
|
BT
|
||||||
|
/F1 24 Tf
|
||||||
|
72 720 Td
|
||||||
|
(Page) Tj
|
||||||
|
ET
|
||||||
|
q
|
||||||
|
100 0 0 100 72 600 cm
|
||||||
|
/Im1 Do
|
||||||
|
Q
|
||||||
|
q
|
||||||
|
100 0 0 100 192 600 cm
|
||||||
|
/Im2 Do
|
||||||
|
Q
|
||||||
|
q
|
||||||
|
1.00000 0.00000 0.00000 1.00000 72.00000 200.00000 cm
|
||||||
|
/Fx1 Do
|
||||||
|
Q
|
||||||
|
endstream
|
||||||
|
endobj
|
||||||
|
|
||||||
|
23 0 obj
|
||||||
|
177
|
||||||
|
endobj
|
||||||
|
|
||||||
|
xref
|
||||||
|
0 24
|
||||||
|
0000000000 65535 f
|
||||||
|
0000000025 00000 n
|
||||||
|
0000000079 00000 n
|
||||||
|
0000000402 00000 n
|
||||||
|
0000000519 00000 n
|
||||||
|
0000000637 00000 n
|
||||||
|
0000000682 00000 n
|
||||||
|
0000001066 00000 n
|
||||||
|
0000001086 00000 n
|
||||||
|
0000001401 00000 n
|
||||||
|
0000001421 00000 n
|
||||||
|
0000001833 00000 n
|
||||||
|
0000001854 00000 n
|
||||||
|
0000002266 00000 n
|
||||||
|
0000002287 00000 n
|
||||||
|
0000002699 00000 n
|
||||||
|
0000002720 00000 n
|
||||||
|
0000003132 00000 n
|
||||||
|
0000003153 00000 n
|
||||||
|
0000003565 00000 n
|
||||||
|
0000003586 00000 n
|
||||||
|
0000003998 00000 n
|
||||||
|
0000004042 00000 n
|
||||||
|
0000004276 00000 n
|
||||||
|
trailer <<
|
||||||
|
/Root 1 0 R
|
||||||
|
/Size 24
|
||||||
|
/ID [<55269d37282af9edc76855e4cb859987><5044e8073c04a0be007e587c761cce26>]
|
||||||
|
>>
|
||||||
|
startxref
|
||||||
|
4297
|
||||||
|
%%EOF
|
@ -1,5 +1,5 @@
|
|||||||
WARNING: shared-images-errors.pdf (offset 4933): error decoding stream data for object 19 0: stream inflate: inflate: data: incorrect header check
|
WARNING: shared-images-errors.pdf (offset 4933): error decoding stream data for object 19 0: stream inflate: inflate: data: incorrect header check
|
||||||
WARNING: shared-images-errors.pdf, object 4 0 at offset 676: Unable to parse content stream: content stream (content stream object 19 0): errors while decoding content stream; not attempting to remove unreferenced objects from this page
|
WARNING: shared-images-errors.pdf, object 4 0 at offset 676: Unable to parse content stream: content stream (content stream object 19 0): errors while decoding content stream; not attempting to remove unreferenced objects from this object
|
||||||
WARNING: shared-images-errors.pdf (offset 4933): error decoding stream data for object 19 0: stream inflate: inflate: data: incorrect header check
|
WARNING: shared-images-errors.pdf (offset 4933): error decoding stream data for object 19 0: stream inflate: inflate: data: incorrect header check
|
||||||
WARNING: shared-images-errors.pdf (offset 4933): stream will be re-processed without filtering to avoid data loss
|
WARNING: shared-images-errors.pdf (offset 4933): stream will be re-processed without filtering to avoid data loss
|
||||||
qpdf: operation succeeded with warnings; resulting file may have some problems
|
qpdf: operation succeeded with warnings; resulting file may have some problems
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
WARNING: split-tokens.pdf, object 3 0 at offset 181: Bad token found while scanning content stream; not attempting to remove unreferenced objects from this page
|
WARNING: split-tokens.pdf, object 3 0 at offset 181: Bad token found while scanning content stream; not attempting to remove unreferenced objects from this object
|
||||||
WARNING: empty PDF: content normalization encountered bad tokens
|
WARNING: empty PDF: content normalization encountered bad tokens
|
||||||
WARNING: empty PDF: normalized content ended with a bad token; you may be able to resolve this by coalescing content streams in combination with normalizing content. From the command line, specify --coalesce-contents
|
WARNING: empty PDF: normalized content ended with a bad token; you may be able to resolve this by coalescing content streams in combination with normalizing content. From the command line, specify --coalesce-contents
|
||||||
WARNING: empty PDF: Resulting stream data may be corrupted but is may still useful for manual inspection. For more information on this warning, search for content normalization in the manual.
|
WARNING: empty PDF: Resulting stream data may be corrupted but is may still useful for manual inspection. For more information on this warning, search for content normalization in the manual.
|
||||||
|
Loading…
Reference in New Issue
Block a user