Let PdfFileMerger open the files to be merged itself #1151
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
PrintingService
currently doesn't work. With the fix mentioned in PR #1150, a file is printed, but it only contains empty pages.It seems that
PdfFileMerger
is used in a way that raises unspecified behavior: The input files are opened and appended to thepdfmerger
, and then closed again beforepdfmerger.write(...)
is called. This way,pdfmerger.write
probably tries to read the appended files, but is unable to. I suppose that in previous versions ofPdfFileMerger
the appended files were already read into memory whenappend
was called, and that the implementation has changed.To fix this, we could keep the files open until calling
pdfmerger.write(...)
. But aspdfmerger
is able to open files itself, the proposed change just gives it the paths to the files and callspdfmerger.close()
in the end, sopdfmerger
should close all files again.This change is