LATEST NEWS — PDF Clown 0.0.8 functionalities are part of the latest release (PDF Clown 0.1.0). As 0.0 version series is under decommissioning, you’re warmly invited to adopt the current 0.1 version series. Thank you!
This post collects all the relevant information about issues and questions regarding PDF Clown 0.0.8.
If you have any doubt on topics not treated here, please apply your question to the Help forum.
1. ‘GoToExternalDestination’ class missing
See Topic 3836075 in the Help forum.
2. ‘xref’ keyword not found
See Topic 3434621 in the Help forum.
3. Unknown type: Comment
See Topic 3863926 in the Help forum.
4. Text line height
See Topic 3928380 in the Help forum.
2 thoughts on “PDF Clown 0.0.8: Q&A”
I have downloaded PDF Clown to use its PDF manipulation abilities. More precisely, I had to implement a functionality for our software in order to modify an invoice template with some detail information and then write it back to disk with a different name.
Finally I reached my goal: the PDF file is modified (I can select the text to change, change it, and then save the file back), but sometimes the font set is not complete. For example, when I tried to modify a text that is Times New Roman, the char “1” (number) and “W” (large w) were missing. Actually this resulted in a NullPointerException — I made a small change at Font.java 437 line to replace to:
ByteArray bm = codes.getKey((int)textChar);
if (bm == null) continue;
But this doesn’t replace the missing elements from the “codes” variable of course. I have no idea how to correct this.
that’s a tricky job: subset fonts obviously imply that part of their characters and glyph descriptions is missing, so there’s no easy way to restore them; if the same font is available on your system, you may try to import its additional data, otherwise you may substitute such embedded font with a similar one, remapping its characters, but it’s an awful deed… Since you seem to work on templates, the best approach could be to avoid changing existing text at all: insert new text with your own font instead.