Live data from Hacker News

Show HN: IPA, a GUI for exploring inner details of PDFs

github.com

41–50 of 52 posts

Re: Show HN: IPA, a GUI for exploring inner details of PDFs

#41
post #37

Earlier quoted context omitted.

Sounds like they amay be accepting user PDFs, saving them to a bucket, and then doing processing after.

They trust their AWS EC2 instance doing the processing but not their AWS S3 bucket doing the storing? I don't really understand the threat model here. And what's " public bucket"?

ah apologies again, for this specific one i meant where users from the internet are allowed to upload to. (i am using presigned urls)

Re: Show HN: IPA, a GUI for exploring inner details of PDFs

#42
post #37

Earlier quoted context omitted.

Sounds like they amay be accepting user PDFs, saving them to a bucket, and then doing processing after.

They trust their AWS EC2 instance doing the processing but not their AWS S3 bucket doing the storing? I don't really understand the threat model here. And what's " public bucket"?

So the model here is, first it gets uploaded to a staging bucket, a lambda/callback checks the validity of the file and then puts it into a safe bucket of which content I trust to put in my server(backend)

Re: Show HN: IPA, a GUI for exploring inner details of PDFs

#43
post #36

Earlier quoted context omitted.

That demo page told me everything I needed to know about not using that framework. There's no right-click to copy the text, and there's similarly no context menu to open links in a new tab, or copy their URL

And just like that, we're back to the old days of Macromedia Flash where you have to write your own context menu and specify which texts are selectable.

Yeah, I knew I was in for some onoz when I saw "compiled to WebAssembly and rendered with WebGL". In their defense, it's stunning that any text operations work at all

Also, "There is no DOM, HTML, JS or CSS" is some uh-huh given the considerable amount of silliness involved in view-source:https://www.egui.rs/

Re: Show HN: IPA, a GUI for exploring inner details of PDFs

#44

Earlier quoted context omitted.

I've been using several Python libraries for working with PDFs. At least one of them allows you to walk the AST. (will look up in a bit and edit this comment)

I've been using pypdf for working with PDFs in Python. My uses are pretty humble. I create Jupyter notebooks for managing sheet music that I receive in PDF format, allowing me to do things like break up a book of tunes into individual files, and so forth. This in turns makes it easier to pull up individual tunes on my tablet during a performance. But it looks like you can treat the PDF as a tree structure. I've used…

yeah, I've been using pypdf mainly, camelot-py for some table stuff, and a bit of pdfminer

I've been needing something to see the x/y bounds of tables to fix some edge cases with camelot, seem to be some good links in the comments here

Re: Show HN: IPA, a GUI for exploring inner details of PDFs

#45

For exploring the inners of a PDF you also have RUPS[1] which is open source and easily installed in Linux through flathub[2]. [1] https://itextpdf.com/products/rups [2] https://flathub.org/apps/com.itextpdf.RUPS

Do be careful with iText products—they license their stuff under AGPL but their interpretation of AGPL is pretty extreme. If you talk to their team they'll tell you that ~everything your company makes should be AGPL-licensed if you use iText anywhere [0]:

> You may not deploy it on a network without disclosing the full source code of your own applications under the AGPL license. You must distribute all source code, including your own product and web-based applications.

They also have this delightful nagware encoded as a base64 string that spits this out in your logs [1]:

> You are using iText under the AGPL.

> If this is your intention, you have published your own source code as AGPL software too. Please let us know where to find your source code by sending a mail to agpl@apryse.com We'd be honored to add it to our list of AGPL projects built on top of iText and we'll explain how to remove this message from your error logs.

> If this wasn't your intention, you are probably using iText in a non-free environment. In this case, please contact us by filling out this form: http://itextpdf.com/sales If you are a customer, we'll explain how to install your license key to avoid this message. If you're not a customer, we'll explain the benefits of becoming a customer.

For using RUPS on a local computer you're probably safe, but I avoid the company because everything about their approach to the AGPL suggests that they chose it as a marketing technique for their paid products (with an extremely strong desire that it never be used commercially without pay), not out of a serious commitment to free software.

[0] https://itextpdf.com/how-buy/AGPLv3-license

[1] https://github.com/itext/itext-dotnet/blob/develop/itext/ite...

Re: Show HN: IPA, a GUI for exploring inner details of PDFs

#46

Great work! I'm sorry to be another jerk posting a link to something similar, but here is my solution, running in the browser (just drag and drop your PDF in): https://reportmill.com/snaptea/PDFViewer/

Nice! My tool should be runnable in the browser thanks to wasm compatibility with Rust + egui :) Btw I've just tried it, and it's a little bit buggy in Safari with a 504kb PDF (lots of objects though). Apart from that, is there a way to export the raw stream? Is there any reason of do you print all the raw streams as a text?

I don’t remember much about the work - it was just a quick and dirty app to help me debug PDF for my ReportMill work (10 years ago). I remember thinking there probably weren’t more than 100 people on the planet who would even care about it.

Re: Show HN: IPA, a GUI for exploring inner details of PDFs

#47
post #37

Earlier quoted context omitted.

They trust their AWS EC2 instance doing the processing but not their AWS S3 bucket doing the storing? I don't really understand the threat model here. And what's " public bucket"?

So the model here is, first it gets uploaded to a staging bucket, a lambda/callback checks the validity of the file and then puts it into a safe bucket of which content I trust to put in my server(backend)

I think maybe you are using the word "tampered" in an unusual way? To mean unsafe?

Re: Show HN: IPA, a GUI for exploring inner details of PDFs

#49
Is there actually a open source good alternative of Adobe Acrobat? I mean one where you can easily 1) merge and extract pages 2) edit content, e.g. change a single line in a simple vector graphics, add text ornother elements 3) place a signature and create a "protected" pdf. AFAIK, there isn't a single good open source program to do all of these things. Why?

Re: Show HN: IPA, a GUI for exploring inner details of PDFs

#50

I recently wanted to edit out a huge background image repeating on almost every page of a PDF and found out there's no obvious way to do it. Would appreciate any tool suggestions!

This is probably a simple find-and-replace task, so I wouldn't bother with proper PDF parsing or libraries. I would:

1. Use pdftk to uncompress it: pdftk input.pdf output uncompressed.pdf uncompress

2. Look at the PDF code (it's text based) to find the image insertion code.

3. Replace all instances of the image insertion code with strings of spaces the same length (there's a table of object byte offsets at the end that you don't want to mess up).

4. Use pdftk to compress it again: pdftk edited.pdf output output.pdf compress

I have a script that does this to remove pen strokes of particular colours so I can e.g. strip out marking rubric on test solutions written on a tablet.

Get the PDF 1.7 spec from https://pdfa.org/resource/pdf-specification-archive/. You're looking for the "Do" operator invoking a named image object defined elsewhere with "/Subtype /Image". See section 4.8, particularly the example on p343. Or, if it's badly done, it might instead be an inline image using the "BI" operator (a bit later in the same section).

Post reply on HN