Closed leviwilson closed 1 year ago
@boazsegev any feedback on these changes?
Sorry, busy days... I'll look it over soon... I hope.
This PR is great! 👏
The :raise_on_encrypted
option and CombinePDF::EncryptionError
are exactly what I was looking for. I'm very happy to see these two features merged.
On the other hand, there are some things I've been wondering about in the PR.
test/combine_pdf/load_test.rb
is spec style, but test/combine_pdf/renderer_test.rb
is Minitest::Test
style. I don't think it's very desirable to have two specs with different styles in there.EncryptionError
. I think it would be better to separate it into another Pull Request.
.travis.yml
.
test/combine_pdf/load_test.rb
is spec style, buttest/combine_pdf/renderer_test.rb
isMinitest::Test
style. I don't think it's very desirable to have two specs with different styles in there.
I've never used Minitest
before but the load_test.rb
had more verifications which left me seeking additional Minitest
functionality, but I still stuck within Minitest
- Fixing the Rakefile for test runs is great, but it solves a different problem than encryption and
EncryptionError
. I think it would be better to separate it into another Pull Request.
It's still related to the PR since when I went to run specs, there was no way to run all of them. Thought it would be best to make it a default rake task like other projects.
- Ditto for adding the
.travis.yml
. I'm indifferent. Seems innocuous enough to not warrant another PR.
Thanks for the feedback / looking at it!
@boazsegev just checking in on this. It look good?
@boazsegev @leviwilson that would be a great feature.
@boazsegev Do you mind to take a look on this feature to at least allow user to stop proceeding until a better decryption is implemented?
There is no way user can stop proceeding encrypted pdf without able to ingest flag
Thank you every one for the work you put in on this :)
I'll test and push the patch as soon as I have a moment.
released @ 1.0.23
This pull request adds a
raise_on_encrypted: true
option toCombinePDF.load
. In this manner, a consumer can choose to haveCombinePDF
throw an exception in the event that the PDF they are trying to open is encrypted.In addition to this, sometimes during the
CombinePDF::PDFParser#parse
, it can come across a scenario where it raises aZlib::DataError
but was still able to obtain some information about the file in theroot_object
such as whether or not there isroot_object[:Encrypt]
information in it. For those conditions, rather than raising aZlib::DataError
it will raise theCombinePDF::EncryptionError
instead but only if theraise_on_encrypted: true
has been set. Otherwise, it'll allow theZlib::DataError
to bubble up.