Jump to content
  • 0

PDF Document met achtergrond


burggraaf

Question

Het maken van een PDF document (FM 8.5) is op zich natuurlijk geen enkel probleem. Maar de klant wil in z'n te generen pdf factuur (met regels en dus niet achter een portal) eigen stijlelementen. Dus een achtergrond en elementen welke van boven naar beneden lopen. Dat is natuurlijk voor Filemaker een stuk lastiger. Iemand goede suggesties?

Link to comment

Recommended Posts

  • 0
Sorry, ik had niet begrepen dat je in lijstweergave zat. Logisch. Dan wordt het iets lastiger. Kan je een voorbeeld van zo'n document posten?

Een voorbeeld??? Maak maar een (factuur in) lijstweergave en probeer op de achtergrond van de A4 welke hiermee wordt geprint een afbeelding te krijgen. De afdruk bij voorkeur in PDF (niet in Word).

Link to comment
  • 0

Wil de klant die achtergrond zien in het regeloverzicht of alleen in de factuur?

Als het de factuur is dan natuurlijk een tweede layout met de juiste achtergrond en een contaien veld zoals al is aangegeven.

Klant hoeft toch niet te zien hoe deze tot stand komt?

ALs de klant achter het regeloverzicht de juiste achtergrond wilt dan is dat inderdaad erg lastig maar is dat absoluut noodzakelijk?

Link to comment
  • 0

@Andries,

er bestaat een java bibliotheek iText. Deze laat toe om pdfs te manipuleren. Via ScriptMaster kan je dan deze Java code laten draaien en de afbeelding toevoegen.

Lijkt inderdaad een oplossing alhoewel wellicht redelijk complex. Maar, dat kan ik zo direct niet goed inschatten. Heb jij ervaring met deze oplossing?

Link to comment
  • 0
Wil de klant die achtergrond zien in het regeloverzicht of alleen in de factuur?

Als het de factuur is dan natuurlijk een tweede layout met de juiste achtergrond en een contaien veld zoals al is aangegeven.

Klant hoeft toch niet te zien hoe deze tot stand komt?

ALs de klant achter het regeloverzicht de juiste achtergrond wilt dan is dat inderdaad erg lastig maar is dat absoluut noodzakelijk?

Ik zie niet in hoe een 2e layout een oplossing zou brengen als je de gewenste pdf zou willen maken. En vanzelfsprekend, dat was ook de vraag, moet de juiste achtergrond achter de regels...

 

Als het geen noodzaak zou zijn, zocht ik ook geen oplossing... Sommige organisaties eisen nu eenmaal dat er via de huisstijl wordt gecommuniceerd.

 

Wellicht is er iets om automatisch meerdere pdf's in lagen samen te voegen tot 1 pagina (lijkt op iets wat Andries als oplossing heeft aangedragen).

Link to comment
  • 0
lijkt inderdaad een oplossing alhoewel wellicht redelijk complex. Maar, dat kan ik zo direct niet goed inschatten. Heb jij ervaring met deze oplossing?

 

Zelf heb ik deze bibliotheek al voor verschillende dingen gebruikt. het is niet zo complex, maar een andere omgeving en vraagt wel even tijd om het allemaal te begrijpen. Op FMForums -> 360Works -> ScriptMaster vind je heel wat voorbeelden voor het gebruik van ScriptMaster en ook enkele voorbeelden voor iText.

Link to comment
  • 0

Ik heb nog een leuke denkwijze :idea:

 

Exporteer je gegevens als xml met een xsl stylesheet naar een vaste lokatie.

Door middel van die xsl stylesheet kan je een html layout maken, die kan je zo vormgeven als je wilt.

Laat het file in filemaker zien via de webviewer en zorg dat je die inhoud als pdf kunt bewaren.

 

Ik heb niets getest maar het lijkt mij een goede manier om zoiets voor elkaar te krijgen zonder extra plugins en dergelijke.

 

Groet, Niels

Link to comment
  • 0
een portaal over meerder pagina's is lastig en bovendien moet je bij een portaal werken met een vooraf vastgesteld maximum aan te gebruiken regels wat meestal ongewenst is bij facturen en offertes.

...en dat in dit geval niet alleen... het vergt ook een behoorlijke verbouwing van de bestaande complexe applicatie... maar... we gaan een beetje off-topic... het was en is de vraag ook niet... ik begrijp niet zo goed (druk ik me voorzichtig uit) waarom er altijd weer mensen zijn die je persé een andere richting op willen sturen terwijl je daar herhaaldelijk niet om vraagt.

 

DUS:

 

Een mogelijke oplossing voor een lijstweergave welke in PDF moet worden aangemaakt en welke over de volledige pagina een achtergrond heeft en dus GEEN(!!!) portaal.

Link to comment
  • 0

import java.io.*;
import java.util.*;

import com.itextpdf.text.*;

import com.itextpdf.text.pdf.PdfReader;
import com.itextpdf.text.pdf.PdfStamper;
import com.itextpdf.text.pdf.PdfContentByte;
import com.itextpdf.text.pdf.BaseFont;


//Leest de pdf file in waar we het watermerk aan willen toevoegen
PdfReader reader = new PdfReader(pdfIn);


//Bereken het aantal pagina's, later voor de while statement later om op elke pagina de foto te zetten
int n = reader.getNumberOfPages();

PdfStamper stamp = new PdfStamper(reader, new FileOutputStream(pdfOut));
int i = 1;



/*
Dit zijn twee objecten die we aanmaken. Dit zijn de twee lagen in de pdf
under -> watermerk
over -> de tekst die er al stond
*/
PdfContentByte under;
PdfContentByte over;


//We laden de afbeelding in in een Image object
Image img = Image.getInstance(watermarkPath);
BaseFont bf = BaseFont.createFont(BaseFont.HELVETICA, 
       BaseFont.WINANSI, BaseFont.EMBEDDED);

//positie van het watermerk
img.setAbsolutePosition(200, 400);


/*
Voor elke pagina maken we twee lagen aan: eentje met de watermark, en eentje met de originele tekst
*/
while (i < n + 1) 
{
       under = stamp.getUnderContent(i);
       under.addImage(img);
     	over = stamp.getOverContent(i);
       over.beginText();
       over.setFontAndSize(bf, 18);
       over.showText("page " + i);
       over.endText();

       i++;
     }

//We sluiten het stamper object af
stamp.close();

 

Deze functie voegt een afbeelding toe op elke pagina van een pdf, en bewaart die dan als nieuwe pdf. Ik denk niet dat al 100% zal doen wat je nodig hebt, maar je kan er mee op weg.

 

Moet je wel niet vergeten om de iText jar file in te laden in ScriptMaster of je applicatie.

 

Functie heeft 3 parameters:

pdfIn: het OS pad naar de PDF waar je het watermerk aan wil toevoegen

pdfOut: het OS pad naar de PDF waar je de nieuwe pdf wil bewaren

watermarkPath: het OS pad naar de afbeelding die moet dienen als watermerk

Link to comment
  • 0

Ik werk op een mac standaard kan je dan ieder document bewaren als pdf. Voor windows zijn er pdf printers die dat kunnen, zo kan je ook html pagina's printen als pdf.

 

Maar wat gebeurt er als je een layout in Filemaker print als pdf met de filemaker functie?? dan neemt ie toch gewoon ook de webviewer mee??

 

Er zijn ook nog scripts (php) te vinden waarmee je een html pagina kunt bewaren als pdf maar dan moet je wel gebruik kunnen maken van php op een server.

Link to comment
  • 0
een portaal over meerder pagina's is lastig en bovendien moet je bij een portaal werken met een vooraf vastgesteld maximum aan te gebruiken regels wat meestal ongewenst is bij facturen en offertes.

...en dat in dit geval niet alleen... het vergt ook een behoorlijke verbouwing van de bestaande complexe applicatie... maar... we gaan een beetje off-topic... het was en is de vraag ook niet... ik begrijp niet zo goed (druk ik me voorzichtig uit) waarom er altijd weer mensen zijn die je persé een andere richting op willen sturen terwijl je daar herhaaldelijk niet om vraagt.

Ik wil je geen andere richting opsturen. Ik kan me alleen niet voorstellen dat wat je wilt minder werk is dan een portaal op een layout zetten. Alle hier aangevoerde bezwaren tegen een portaal zijn gewoon NIET waar, en ik zou zelfs zeggen: met een portaal gaat het allemaal beter. (en je kunt je achtergrond maken)

 

Maar doe vooral wat je wilt.

Link to comment
  • 0
import java.io.*;
import java.util.*;

import com.itextpdf.text.*;

import com.itextpdf.text.pdf.PdfReader;
import com.itextpdf.text.pdf.PdfStamper;
import com.itextpdf.text.pdf.PdfContentByte;
import com.itextpdf.text.pdf.BaseFont;


//Leest de pdf file in waar we het watermerk aan willen toevoegen
PdfReader reader = new PdfReader(pdfIn);


//Bereken het aantal pagina's, later voor de while statement later om op elke pagina de foto te zetten
int n = reader.getNumberOfPages();

PdfStamper stamp = new PdfStamper(reader, new FileOutputStream(pdfOut));
int i = 1;



/*
Dit zijn twee objecten die we aanmaken. Dit zijn de twee lagen in de pdf
under -> watermerk
over -> de tekst die er al stond
*/
PdfContentByte under;
PdfContentByte over;


//We laden de afbeelding in in een Image object
Image img = Image.getInstance(watermarkPath);
BaseFont bf = BaseFont.createFont(BaseFont.HELVETICA, 
       BaseFont.WINANSI, BaseFont.EMBEDDED);

//positie van het watermerk
img.setAbsolutePosition(200, 400);


/*
Voor elke pagina maken we twee lagen aan: eentje met de watermark, en eentje met de originele tekst
*/
while (i < n + 1) 
{
       under = stamp.getUnderContent(i);
       under.addImage(img);
     	over = stamp.getOverContent(i);
       over.beginText();
       over.setFontAndSize(bf, 18);
       over.showText("page " + i);
       over.endText();

       i++;
     }

//We sluiten het stamper object af
stamp.close();

 

Deze functie voegt een afbeelding toe op elke pagina van een pdf, en bewaart die dan als nieuwe pdf. Ik denk niet dat al 100% zal doen wat je nodig hebt, maar je kan er mee op weg.

 

Moet je wel niet vergeten om de iText jar file in te laden in ScriptMaster of je applicatie.

 

Functie heeft 3 parameters:

pdfIn: het OS pad naar de PDF waar je het watermerk aan wil toevoegen

pdfOut: het OS pad naar de PDF waar je de nieuwe pdf wil bewaren

watermarkPath: het OS pad naar de afbeelding die moet dienen als watermerk

 

Klinkt goed, ga er zeker naar kijken~!

Link to comment
  • 0
Maar wat vond je dan van mijn denkwijze via xml? :D

Tja, is zeker iets om over na te denken. Op zich wel mooi en opent meer perspectieven. Maar inderdaad, dan moet er nog een conversieslag volgen. Volgens mij zijn er ook xml naar pdf converters. Maar... eerlijk is eerlijk... de kennis van xml is tot nu toe beperkt.

Link to comment

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...