Bugzilla – Attachment 188732 Details for
Bug 38516
Closed group basket not able to open pdf file with adobe The root object is missing or invalid
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 38516: Use PDF template copy for exporting PDFs
Bug-38516-Use-PDF-template-copy-for-exporting-PDFs.patch (text/plain), 4.98 KB, created by
David Cook
on 2025-10-31 03:37:08 UTC
(
hide
)
Description:
Bug 38516: Use PDF template copy for exporting PDFs
Filename:
MIME Type:
Creator:
David Cook
Created:
2025-10-31 03:37:08 UTC
Size:
4.98 KB
patch
obsolete
>From 7cdda99504b1ed1feca92745e0c3f6bcc275f202 Mon Sep 17 00:00:00 2001 >From: David Cook <dcook@prosentient.com.au> >Date: Thu, 30 Oct 2025 01:36:53 +0000 >Subject: [PATCH] Bug 38516: Use PDF template copy for exporting PDFs > >Due to a bug in PDF::API2 or related libraries, >you cannot export a PDF if you do not have write >permission on the PDF template. We bypass this >problem by taking a string copy of the PDF template >and working on that instead. > >Test plan: >0. DO NOT APPLY THE PATCH YET >1. chmod 444 /kohadevbox/koha/koha-tmpl/intranet-tmpl/prog/pdf/*.pdf >2. Create a basket with a vendor >3. Add an order to the basket >4. Close basket (and attach the basket to a new basket group with the same name) >5. Go to "Closed" tab and click "Export as PDF" >6. Note that you get an error when you try to open it in Adobe or some other PDF program > >7. Apply the patch and restart koha (e.g. koha-plack --restart kohadev) > >8. Try to "Export as PDF" again >9. Note that this time there is no warning and your PDF opens just fine >10. Repeat the "Export as PDF" process for every option of the >system preference "OrderPdfFormat". Every option should work >without errors. >11. Celebrate! >--- > Koha/pdfformat/layout1page.pm | 4 +++- > Koha/pdfformat/layout2pages.pm | 4 +++- > Koha/pdfformat/layout2pagesde.pm | 4 +++- > Koha/pdfformat/layout3pages.pm | 4 +++- > Koha/pdfformat/layout3pagesfr.pm | 4 +++- > 5 files changed, 15 insertions(+), 5 deletions(-) > >diff --git a/Koha/pdfformat/layout1page.pm b/Koha/pdfformat/layout1page.pm >index 1d845bf5ee8..0bcf0d11e0f 100644 >--- a/Koha/pdfformat/layout1page.pm >+++ b/Koha/pdfformat/layout1page.pm >@@ -249,7 +249,9 @@ sub printpdf { > # open the default PDF that will be used for base (1st page already filled) > my $pdf_template = > C4::Context->config('intrahtdocs') . '/' . C4::Context->preference('template') . '/pdf/layout1page.pdf'; >- my $pdf = PDF::API2->open($pdf_template); >+ my $pdf_template_obj = PDF::API2->open($pdf_template); >+ my $pdf_template_str = $pdf_template_obj->to_string(); >+ my $pdf = PDF::API2->from_string($pdf_template_str); > $pdf->pageLabel( > 0, > { >diff --git a/Koha/pdfformat/layout2pages.pm b/Koha/pdfformat/layout2pages.pm >index cb7ac566bab..58e893d4064 100644 >--- a/Koha/pdfformat/layout2pages.pm >+++ b/Koha/pdfformat/layout2pages.pm >@@ -264,7 +264,9 @@ sub printpdf { > # open the default PDF that will be used for base (1st page already filled) > my $pdf_template = > C4::Context->config('intrahtdocs') . '/' . C4::Context->preference('template') . '/pdf/layout2pages.pdf'; >- my $pdf = PDF::API2->open($pdf_template); >+ my $pdf_template_obj = PDF::API2->open($pdf_template); >+ my $pdf_template_str = $pdf_template_obj->to_string(); >+ my $pdf = PDF::API2->from_string($pdf_template_str); > $pdf->pageLabel( > 0, > { >diff --git a/Koha/pdfformat/layout2pagesde.pm b/Koha/pdfformat/layout2pagesde.pm >index fd1a7d35b49..6c70a692d1c 100644 >--- a/Koha/pdfformat/layout2pagesde.pm >+++ b/Koha/pdfformat/layout2pagesde.pm >@@ -266,7 +266,9 @@ sub printpdf { > # open the default PDF that will be used for base (1st page already filled) > my $pdf_template = > C4::Context->config('intrahtdocs') . '/' . C4::Context->preference('template') . '/pdf/layout2pagesde.pdf'; >- my $pdf = PDF::API2->open($pdf_template); >+ my $pdf_template_obj = PDF::API2->open($pdf_template); >+ my $pdf_template_str = $pdf_template_obj->to_string(); >+ my $pdf = PDF::API2->from_string($pdf_template_str); > $pdf->pageLabel( > 0, > { >diff --git a/Koha/pdfformat/layout3pages.pm b/Koha/pdfformat/layout3pages.pm >index 4edff813c8b..d17d2308829 100644 >--- a/Koha/pdfformat/layout3pages.pm >+++ b/Koha/pdfformat/layout3pages.pm >@@ -455,7 +455,9 @@ sub printpdf { > # open the default PDF that will be used for base (1st page already filled) > my $pdf_template = > C4::Context->config('intrahtdocs') . '/' . C4::Context->preference('template') . '/pdf/layout3pages.pdf'; >- my $pdf = PDF::API2->open($pdf_template); >+ my $pdf_template_obj = PDF::API2->open($pdf_template); >+ my $pdf_template_str = $pdf_template_obj->to_string(); >+ my $pdf = PDF::API2->from_string($pdf_template_str); > $pdf->pageLabel( > 0, > { >diff --git a/Koha/pdfformat/layout3pagesfr.pm b/Koha/pdfformat/layout3pagesfr.pm >index 045c6e13495..f954ee57502 100644 >--- a/Koha/pdfformat/layout3pagesfr.pm >+++ b/Koha/pdfformat/layout3pagesfr.pm >@@ -449,7 +449,9 @@ sub printpdf { > # open the default PDF that will be used for base (1st page already filled) > my $pdf_template = > C4::Context->config('intrahtdocs') . '/' . C4::Context->preference('template') . '/pdf/layout3pagesfr.pdf'; >- my $pdf = PDF::API2->open($pdf_template); >+ my $pdf_template_obj = PDF::API2->open($pdf_template); >+ my $pdf_template_str = $pdf_template_obj->to_string(); >+ my $pdf = PDF::API2->from_string($pdf_template_str); > $pdf->pageLabel( > 0, > { >-- >2.39.5
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 38516
:
174925
|
175288
|
188163
|
188618
|
188620
|
188732
|
188930
|
190005