How to reopen a TPDF?

Hi guys,

I am a bit curious about the usage of TPDF. I do have a code generating each time a PDF file.
Therefore I would like to relopen and add a page and close. Is it possible with the current version of ROOT ?

Marco

As I would like to merge files basically, I started by installing the PoDoFo library (maybe not the best library? i don’t have any feedback yet) and ran podofomerge as example but it seems there are some issue. (I don’t have the issue while merging 2 pdf files not created with root) Does someone has a guess about this:

Reading file: hist-1_0.pdf
<</Info 2 0 R/Root 1 0 R/Size 107>>
Reading file: hist-1_1.pdf
<</Info 2 0 R/Root 1 0 R/Size 107>>
Appending 14 pages on a document with 14 pages.
Fixing references in 107 0 R by 106
Fixing references in 108 0 R by 106
Fixing references in 109 0 R by 106
Fixing references in 110 0 R by 106
Fixing references in 111 0 R by 106
Error 16 occurred!


PoDoFo encountered an error. Error: 16 ePdfError_NoObject
   Error Description: A object was expected but not found.
   Callstack:
   #0 Error Source: /home/marcomeyer/Compass/escalade/escalade-build/src/libpodofo/src/base/PdfParserObject.cpp:233
   	Information: 4

NB: The goal is then to elaborate a c++ code in order to merge on the fly.

With ROOT you can create PDF with several pages but there is no way to reopen a file and add new pages. You should use external tools for that. OR save your pages (canvases) in ROOT files, not in PDF files.

I finally figured out using gSystem->Exec and the following shell command :

gs -dBATCH -dNOPAUSE -dDOPDFMARKS=true -sDEVICE=pdfwrite -sOutputFile=out.pdf in1.pdf in2.pdf

Hi Couet,

I just noticed that for some reason that I don’t understand ROOT stop executing my shell commands sent from TSystem::Exec.

Is there any kind of explanation for that ? I had to reboot my computer in order to make it work again… :frowning:

No I have no answer. It is difficult to tell what went wrong without more information.