Commit 0c56cec6c32e9b81fc42f1ed791e90005bf716bb
1 parent
88fd7ca9
Refactor QPDF::createFromJSON
Showing
3 changed files
with
12 additions
and
12 deletions
libqpdf/QPDF.cc
| @@ -495,6 +495,14 @@ QPDF::Xref_table::initialize_empty() | @@ -495,6 +495,14 @@ QPDF::Xref_table::initialize_empty() | ||
| 495 | } | 495 | } |
| 496 | 496 | ||
| 497 | void | 497 | void |
| 498 | +QPDF::Xref_table::initialize_json() | ||
| 499 | +{ | ||
| 500 | + initialized_ = true; | ||
| 501 | + trailer_ = QPDFObjectHandle::newDictionary(); | ||
| 502 | + trailer_.replaceKey("/Size", QPDFObjectHandle::newInteger(1)); | ||
| 503 | +} | ||
| 504 | + | ||
| 505 | +void | ||
| 498 | QPDF::Xref_table::initialize() | 506 | QPDF::Xref_table::initialize() |
| 499 | { | 507 | { |
| 500 | // PDF spec says %%EOF must be found within the last 1024 bytes of/ the file. We add an extra | 508 | // PDF spec says %%EOF must be found within the last 1024 bytes of/ the file. We add an extra |
libqpdf/QPDF_json.cc
| @@ -51,17 +51,6 @@ | @@ -51,17 +51,6 @@ | ||
| 51 | // ] | <- st_top | 51 | // ] | <- st_top |
| 52 | // } | | 52 | // } | |
| 53 | 53 | ||
| 54 | -static char const* JSON_PDF = ( | ||
| 55 | - // force line break | ||
| 56 | - "%PDF-1.3\n" | ||
| 57 | - "xref\n" | ||
| 58 | - "0 1\n" | ||
| 59 | - "0000000000 65535 f \n" | ||
| 60 | - "trailer << /Size 1 >>\n" | ||
| 61 | - "startxref\n" | ||
| 62 | - "9\n" | ||
| 63 | - "%%EOF\n"); | ||
| 64 | - | ||
| 65 | // Validator methods -- these are much more performant than std::regex. | 54 | // Validator methods -- these are much more performant than std::regex. |
| 66 | static bool | 55 | static bool |
| 67 | is_indirect_object(std::string const& v, int& obj, int& gen) | 56 | is_indirect_object(std::string const& v, int& obj, int& gen) |
| @@ -785,7 +774,9 @@ QPDF::createFromJSON(std::string const& json_file) | @@ -785,7 +774,9 @@ QPDF::createFromJSON(std::string const& json_file) | ||
| 785 | void | 774 | void |
| 786 | QPDF::createFromJSON(std::shared_ptr<InputSource> is) | 775 | QPDF::createFromJSON(std::shared_ptr<InputSource> is) |
| 787 | { | 776 | { |
| 788 | - processMemoryFile(is->getName().c_str(), JSON_PDF, strlen(JSON_PDF)); | 777 | + m->pdf_version = "1.3"; |
| 778 | + m->no_input_name = is->getName(); | ||
| 779 | + m->xref_table.initialize_json(); | ||
| 789 | importJSON(is, true); | 780 | importJSON(is, true); |
| 790 | } | 781 | } |
| 791 | 782 |
libqpdf/qpdf/QPDF_private.hh
| @@ -16,6 +16,7 @@ class QPDF::Xref_table | @@ -16,6 +16,7 @@ class QPDF::Xref_table | ||
| 16 | 16 | ||
| 17 | void initialize(); | 17 | void initialize(); |
| 18 | void initialize_empty(); | 18 | void initialize_empty(); |
| 19 | + void initialize_json(); | ||
| 19 | void reconstruct(QPDFExc& e); | 20 | void reconstruct(QPDFExc& e); |
| 20 | void show(); | 21 | void show(); |
| 21 | bool resolve(); | 22 | bool resolve(); |