Posted by jpluimers on 2020/06/30
The first hit of pdf binary to text – Google Search was [WayBack] binaryfiles – How to convert PDF binary parts into ASCII/ANSI so I can look at it in a text editor? – Stack Overflow has many options including:
Since I have qpdf installed on most systems:
Another useful tool to transform a PDF into an internal format that enables text editor access is qpdf
. It is a “command-line program that does structural, content-preserving transformations on PDF files”.
Example usage:
qpdf \
--qdf \
--object-streams=disable \
input-with-compressed-objects.pdf \
output-with-expanded-objects.pdf
- The output of the
QDF
-mode enforced by the --qdf
switch organizes and re-orders the objects neatly. It adds comments to track the original object IDs and page content streams. All object dictionaries are written into a “normalized” standard format for easier parsing.
- The
--object-streams=disable
causes the extraction of (otherwise not recognizable) individual objects that are compressed into another object’s stream data.
The recompress is easy as per [WayBack] QPDF Manual:
qpdf /tmp/uncompressed.pdf /tmp/compressed.pdf
The answer is by [WayBack] User Kurt Pfeifle – Stack Overflow who has many other interesting PDF related answers at:
Stackoverflow.com:
Superuser.com:
Serverfault.com:
–jeroen
Like this:
Like Loading...
Posted in Development, EPS/PostScript, PDF, Power User | Leave a Comment »
Posted by jpluimers on 2020/03/05
A while ago, I wanted to analyse the difference of some PDF documents: why they had suddenly grown to twice their size.
[WayBack] Jeroen Pluimers en Twitter: “dat genereren kun je overigens zien als je dezelfde downloads doet, maar dan een fikse periode uit elkaar.…”


There are quite a few tools on [WayBack] Browse Internal PDF Structure – Super User and [WayBack] Best tool for inspecting PDF files? – Stack Overflow, including:
They also made me discover [WayBack] GitHub – pipwerks/PDFObject: A lightweight JavaScript utility for dynamically embedding PDFs in HTML documents documented at [WayBack] PDFObject: A JavaScript utility for embedding PDFs 
This particular case
The quickest way to analyse these for me was [WayBack] PDF Object Browser based on [WayBack] GitHub – brendandahl/pdf.js.utils: PDF.js Utility Files which is also the foundation of [WayBack] Test PDF Creator.
It runs in your web browser as local JavaScript, so it is pretty OK to load a PDF file into it: it does no “phone home”.
In this case, for generating PDF files with the same content, ABN AMRO added five Type 3 fonts of which one font was not used at all, and two others used to be Type 1 fonts.
Type 1 fonts (wikipedia)
Type 1 (also known as PostScript, PostScript Type 1, PS1, T1or Adobe Type 1) is the font format for single-byte digital fonts for use with Adobe Type Manager software and with PostScript printers. It can support font hinting.
It was originally a proprietary specification, but Adobe released the specification to third-party font manufacturers provided that all Type 1 fonts adhere to it.
Type 1 fonts are natively supported in Mac OS X, and in Windows 2000 and later via the GDI API.[2] (They are not supported in the Windows GDI+, WPF or DirectWrite APIs.)
Type 3 fonts (wikipedia)
Type 3 font (also known as PostScript Type 3 or PS3, T3 or Adobe Type 3) consists of glyphs defined using the full PostScript language, rather than just a subset. Because of this, a Type 3 font can do some things that Type 1 fonts cannot do, such as specify shading, color, and fill patterns. However, it does not support hinting. Adobe Type Manager did not support Type 3 fonts, and they are not supported as native WYSIWYG fonts on any version of Mac OS or Windows.
So far for optimised PDF rendering…
Being in software development for this long, I am constantly reminded that The inmates are running the asylum – Wikipedia. I can definitely recommend reading “The Inmates Are Running the Asylum: Why High Tech Products Drive Us Crazy and How to Restore the Sanity”, by Alan Cooper:
–jeroen
Like this:
Like Loading...
Posted in Development, EPS/PostScript, PDF, Power User, Software Development | Leave a Comment »
Posted by jpluimers on 2017/11/02
Quoted in full because even 2.5 years later, it’s just too funny:
- Python: What if everything was a dict?
- Java: What if everything was an object?
- JavaScript: What if everything was a dict *and* an object?
- C: What if everything was a pointer?
- APL: What if everything was an array?
- Tcl: What if everything was a string?
- Prolog: What if everything was a term?
- LISP: What if everything was a pair?
- Scheme: What if everything was a function?
- Haskell: What if everything was a monad?
- Assembly: What if everything was a register?
- Coq: What if everything was a type/proposition?
- COBOL: WHAT IF EVERYTHING WAS UPPERCASE?
- C#: What if everything was like Java, but different?
- Ruby: What if everything was monkey patched?
- Pascal: BEGIN What if everything was structured? END
- C++: What if we added everything to the language?
- C++11: What if we forgot to stop adding stuff?
- Rust: What if garbage collection didn’t exist?
- Go: What if we tried designing C a second time?
- Perl: What if shell, sed, and awk were one language?
- Perl6: What if we took the joke too far?
- PHP: What if we wanted to make SQL injection easier?
- VB: What if we wanted to allow anyone to program?
- VB.NET: What if we wanted to stop them again?
- Forth: What if everything was a stack?
- ColorForth: What if the stack was green?
- PostScript: What if everything was printed at 600dpi?
- XSLT: What if everything was an XML element?
- Make: What if everything was a dependency?
- m4: What if everything was incomprehensibly quoted?
- Scala: What if Haskell ran on the JVM?
- Clojure: What if LISP ran on the JVM?
- Lua: What if game developers got tired of C++?
- Mathematica: What if Stephen Wolfram invented everything?
- Malbolge: What if there is no god?
–jeroen
Read the rest of this entry »
Like this:
Like Loading...
Posted in APL, Assembly Language, BASIC, C, C#, C++, COBOL, Development, EPS/PostScript, Fun, Go (golang), Java, Java Platform, JavaScript/ECMAScript, Makefile, Pascal, Perl, PHP, Python, Quotes, Ruby, Scala, Scripting, Software Development, T-Shirt quotes, Turbo Prolog, VB.NET, XML/XSD, XSLT | Leave a Comment »
Posted by jpluimers on 2017/06/27
It’s a while ago I saw this first, but recently I bumped into it again and found out I never posted a link, so here it goes:
A game to help you master the pen tool
Source: The Bézier Game
–jeroen
Like this:
Like Loading...
Posted in Development, EPS/PostScript, Font, Power User, Software Development | Leave a Comment »