Jump to content
  • 0

PDF opsplitsen met iText


Donamd

Question

Posted

Op FMForums vond ik een mogelijkheid om van een PDF bestaande uit meerdere pagina's, één specifieke pagina op te slaan als nieuwe PDF.

Dit heb ik kunnen integeren in mijn toepassing. Nog beter zou deze functie zijn als van de volledige bron PDF, allemaal apparte PDF's zou worden gemaakt.

Hiervoor dient vooreerst het aantal pagina's gekend te zijn waaruit de bron PDF bestaat en dient er een loop gemaakt te worden die het aantal maal deze bewerking herhaalt.

Met volgende regel toe te voegen dient het aantal pagina's toegewezen te worden aan de variabele n :

 

int n = reader.getNumberOfPages();

 

Daarna dient 'n' maal deze bewerking herhaald te worden.

 

Mijn JAVA kennis is onvoldoende, om niet te moeten zeggen onbestaande :) om dit te kunnen oplossen.

Kan iemand dit even bekijken en aanpassen om deze loop te kunnen uitvoeren.

 

De code van de registratie van de functie iText_ExtractSinglePage is hierna toegevoegd :

 

RegisterGroovy( "iText_ExtractSinglePage( fm_pathToSrc ; fm_pathToDest ; fm_getPageNum )" ;

"import com.itextpdf.text.Document;¶

import com.itextpdf.text.DocumentException;¶

import com.itextpdf.text.pdf.PdfCopy;¶

import com.itextpdf.text.pdf.PdfReader;¶

try{¶

def reader = new PdfReader(fm_pathToSrc);¶

def document = new Document();¶

def copy = new PdfCopy(document, new FileOutputStream(fm_pathToDest));¶

document.open();¶

copy.addPage copy.getImportedPage(reader, fm_getPageNum.toInteger() );¶

document.close();¶

return true;¶

} catch (IOException ioe){¶

return 'ERROR: $ioe.message';¶

} catch (DocumentException de){¶

return 'ERROR: $de.message'¶

}"

)

1 answer to this question

Recommended Posts

  • 0
Posted

Volgens mij kan je best de functie dupliceren, alles eruit halen en alleen die ene regel erin zetten

 

Even ( zonder te testen )

 

RegisterGroovy( "CF_GetNumberOfPages( fm_pathToSrc )" ;

"import com.itextpdf.text.Document;¶

import com.itextpdf.text.DocumentException;¶

import com.itextpdf.text.pdf.PdfReader;¶

try{¶

def reader = new PdfReader(fm_pathToSrc);¶

reader.getNumberOfPages();

} catch (IOException ioe){¶

return 'ERROR: $ioe.message';¶

} catch (DocumentException de){¶

return 'ERROR: $de.message'¶

}"

)

 

Als je dat hebt, dan kan je een FileMaker script loop gebruiken met de functie die je al hebt.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...