# update-offsets Updates offsets and lengths in a simple PDF file. ## Usage ``` $ pdfly update-offsets --help Usage: pdfly update-offsets [OPTIONS] FILE_IN FILE_OUT Updates offsets and lengths in a simple PDF file. The PDF specification requires that the xref section at the end of a PDF file has the correct offsets of the PDF's objects. It further requires that the dictionary of a stream object contains a /Length-entry giving the length of the encoded stream. When editing a PDF file using a text-editor (e.g. vim) it is elaborate to compute or adjust these offsets and lengths. This command tries to compute /Length-entries of the stream dictionaries and the offsets in the xref-section automatically. It expects that the PDF file has ASCII encoding only. It may use ISO-8859-1 or UTF-8 in its comments. The current implementation incorrectly replaces CR (0x0d) by LF (0x0a) in binary data. It expects that there is one xref-section only. It expects that the /Length-entries have default values containing enough digits, e.g. /Length 000 when the stream consists of 576 bytes. Example: update-offsets --verbose --encoding ISO-8859-1 issue-297.pdf issue-297.out.pdf ╭─ Arguments ──────────────────────────────────────────────────────────────────╮ │ * file_in FILE [default: None] [required] │ │ * file_out PATH [default: None] [required] │ ╰──────────────────────────────────────────────────────────────────────────────╯ ╭─ Options ────────────────────────────────────────────────────────────────────╮ │ --encoding TEXT Encoding used to read and write the │ │ files, e.g. UTF-8. │ │ [default: ISO-8859-1] │ │ --verbose --no-verbose Show progress while processing. │ │ [default: no-verbose] │ │ --help Show this message and exit. │ ╰──────────────────────────────────────────────────────────────────────────────╯ ``` ## Examples Update the offsets of `document.pdf` with UTF-8 encoding and write the output to `document.out.pdf`. ``` pdfly update-offsets document.pdf --verbose --encoding UTF-8 document.out.pdf ```