|
PDF printer service onder FreeBSD |
![]() |
|
Geschreven door M.Mastenbroek
November 2003 / Document versie 1.1 (Updated 13 December 2003)
|
Voorwoord |
PDF documenten vormen een uitstekende basis voor het verspreiden van documenten over het internet. In tegenstelling tot b.v. een Word documenten waarborgt een PDF document (door zijn structuur) een eenduidige lay-out ongeacht het platform of de applicatie waarmee het wordt bekeken. Daarnaast hoeft de gebruiker ook geen licentie aan te schaffen om het PDF document te kunnen bekijken. Versleuteling van het document is ook mogelijk waardoor de gebruiker enkel het document kan openen maar niet in staat is de inhoud te kopiëren. Hiervoor is echter voor de maker van het document een licentie van Adobe nodig.
Een PDF printer genereert in tegen stelling tot een ‘gewone’ printer geen afdruk op papier maar maakt een PDF document. Vanuit ieder applicatie onder Windows kan naar de PDF printer een printopdracht worden verstuurd. Dit heeft als grote voordeel dat bij de conversie van het origineel naar het PDF document geen kennis over het originele bestandsformaat nodig is. Ongeacht vanuit welke applicatie er wordt geprint b.v. Word, Excel of Internet Explorer en ongeacht welke versie kan het PDF document worden gegenereerd. Nadat vanuit Windows de PDF netwerk printer is geinstalleerd is het hierna direct mogelijk om PDF documenten te maken.
In dit document wordt uitgelegd hoe je een PDF printer onder FreeBSD installeert en deze deelt in het Windows netwerk. Daarbij wordt ook uitgelegd hoe vervolgens deze printer moet worden geïnstalleerd onder Windows.
Benodigdheden |
FreeBSD 4.x of hoger Windows 95 of hoger Basis kennis van Unix en een root shell Basis kennis van Windows
Stap 1 Installatie van GNU Postscript interpreter & Samba |
Is er momenteel nog geen 'GNU Postscript interpreter' geïnstalleerd op het systeem dan kan dat als volgt gedaan worden.
Shell:
cd /usr/ports/print/ghostscript-gnu-nox11
make install clean
Het is mogelijk dat tijdens de installatie procedure een invulscherm wordt getoond waarbij een aantal opties kunnen worden geselecteerd. Naar eigen inzicht kunnen hier extra opties aangegeven worden, de standaard opties zijn echter voldoende voor het verdere verloop van deze installatie procedure.
Is er momenteel nog geen 'Samba server' geïnstalleerd op je systeem dan kan dat als volgt gedaan worden.
Shell:
/usr/ports/net/samba
make install clean
Vervolgens wordt gevraagd welke extra opties er aan de 'Samba server' moeten worden toegevoegd. Naar eigen inzicht kunnen hier extra opties meegegeven worden, deze zijn verder niet noodzakelijk voor het verdere verloop van deze installatie procedure.
Om ervoor te zorgen dat de Samba server nu en in de toekomst automatisch start bij het opstarten van je systeem moeten de volgende 2 handelingen worden uitgevoerd.
Shell:
mv /usr/local/etc/rc.d/samba.sh.sample /usr/local/etc/rc.d/samba.sh
cp /usr/local/etc/smb.conf.default /usr/local/etc/smb.conf
/usr/local/etc/rc.d/samba.sh start
Om er straks zeker van te zijn dat Samba de wijzigingen in de configuratie file meeneemt kun je in de experimenteer fase het best de server stoppen en (her) starten. Het starten van de Samba server is zojuist al aangeven, het stoppen van de Samba server gaat nagenoeg hetzelfde.
'/usr/local/etc/rc.d/samba.sh stop'
Stap 2 Configuratie PDF Printer |
Er moet een locatie worden bepaald waar straks de PDF printer zijn PDF documenten kan plaatsen.
Als eerst worden er hiervoor 2 directory's aangemaakt.
Shell:
mkdir /usr/local/share/pdf_printer
mkdir /usr/local/share/pdf_printer/drop_box
chmod 007 /usr/local/share/pdf_printer/drop_box
Deze locatie zal gedurende het hele document worden gehanteerd, vanzelfsprekend kan later de locatie naar eigen inzicht worden veranderd en kan de beveiliging verbeterd worden.
Download het bestand 'printpdf.sh' en plaats deze in de directory '/usr/local/bin'
Shell:
fetch http://machiel.generaal.net/files/pdfprinter/printpdf.sh
mv printpdf.sh /usr/local/bin
chmod 755 /usr/local/bin/printpdf.sh
De binnenkomende printopdrachten zullen door samba als post script formaat worden aangeleverd. Het shell script zal dan vervolgens dit bestand converteren naar een PDF document. Om alvast de werking van het shell script te kunnen testen kun je gebruik maken van de postscript voorbeelden van de ‘GNU Postscript interpreter’.
Het lokaliseren van een postscript document en het testen van het shell script gaat als volgt.
Shell:
pkg_info -L ghostscript-gnu-nox11-7.07_4 | grep examples
printpdf.sh <postscript document>
Het resultaat (PDF Document) is vervolgens terug te vinden in de directory '/usr/local/share/pdf_printer/drop_box'.
Stap 3 Configuratie Samba |
Bij het configureren van de Samba server wordt gebruik gemaakt van een minimale configuratie file waarmee de PDF Printer naar behoren zal moeten werken. Later kan deze configuratie file naar eigen inzicht worden uitgebreid of al in een bestaande configuratie worden toegevoegd. Voordat de volgende regels worden uitgevoerd moet je mogelijk eerst je oude configuratie (smb.conf) in veilheid brengen.
Download het bestand 'smb.conf' en plaats deze in de directory '/usr/local/etc'
Shell:
fetch http://machiel.generaal.net/files/pdfprinter/smb.conf
mv smb.conf /usr/local/etc
Geef in de configuratie file aan in welke werkgroep je computer(s) zitten en kies eventueel een andere naam voor de Samba server.
Editor (/usr/local/etc/smb.conf):
netbios name = PDF-SERVER
workgroup = WORKGROUP
Herstart vervolgens de Samba server om er zeker van te zijn dat alle instellingen van de configuratie file worden doorgevoerd.
Stap 4 Configuratie Windows |
De Samba server in nu in het Windows netwerk aanwezig onder de naam zoals je die zojuist aangegeven hebt. Vanaf een Windows computer kan nu de printer worden geïnstalleerd. Bij de installatie procedure moet worden aangegeven om wat voor type printer het gaat. Hiervoor selecteren we de 'HP Color LaserJet 5/5M PS'.
Na de installatie procedure kan er geprint worden naar de PDF printer. Zodra de server deze printopdracht heeft verwerkt (Het PDF document is dan klaar) zal deze naar de gebruiker een bericht sturen via het winpopup protocol. Deze berichten zijn niet direct zichtbaar bij Windows 95/98. Voor de overige Windows versies kan dit bericht er als volgt uitzien.
In dit bericht is te lezen waar het PDF document geplaatst is.
Printerdriver (optioneel) |
Bij de installatie van de PDF printer moet de gebruiker nu zelf de juiste printerdriver selecteren. Ook de benodigde bestanden die samen de printerdriver vormen komen niet van de PDF Printer server maar staan lokaal of moeten van de Windows installatie Cd-rom komen. Het is ook mogelijk om dit proces automatisch te laten verlopen. Hierdoor zal in het vervolg bij de installatie van de PDF printer het type en de printerdriver van de server komen.
Er van uitgaand dat we de 'HP Color LaserJet 5/5M PS' als printerdriver willen gebruiken moet het bestand MSPRINT3.INF uit de INF directory van Windows worden gekopieerd. Aangezien deze bij de hogere versies van Windows niet in deze vorm aanwezig is kan dit bestand hier gedownload worden. Vervolgens kan er aan de hand van dit bestand een 'printers.def' file worden gegenereerd. Dit alles kan als volgt gedaan worden.
Shell:
fetch http://machiel.generaal.net/files/pdfprinter/windows_inf/MSPRINT3.INF
make_printerdef MSPRINT3.INF "HP Color LaserJet 5/5M PS" >> /etc/printers.def
Na de uitvoer van het commando 'make_printerdef' wordt aangegeven welke bestanden samen de printerdriver vormen. Deze bestanden moeten verzameld worden en zijn te vinden in de onderliggende directory van Windows zoals b.v. system32. Ook hiervoor geld dat deze bestanden bij de hogere Windows versies niet voorkomen. Vanwege deze beperking kunnen de bestanden die samen de HP Color LaserJet 5/5M PS’ printerdriver vormen hier worden gedownload. Het downloaden en het plaatsen van de printerdriver gaat als volgt.
Shell:
cd /usr/local/share/pdf_printer
fetch http://machiel.generaal.net/files/pdfprinter/printerdriver.tar.gz
tar -xvzf printerdriver.tar.gz
Tevens moeten er in totaal 7 regels in de Samba configuratie file (smb.conf) worden toegevoegd. Deze regels staan momenteel al in smb.conf, wat rest is het weglaten van het punt comma ' ; ' symbool waardoor de regel niet langer als commentaar regel word gezien.
Nadat de Samba server de nieuwe configuratie heeft geladen is het nu mogelijk om op een gebruikersvriendelijke manier vanaf een Windows computer de PDF printer te installeren.
![]() |
F.A.Q. |
- Kan de afdruk kwaliteit van het PDF document worden verbeterd?
Met name de kwaliteit van de afbeeldingen kunnen in het PDF documenten wat aan de lage kant zijn. Om dit te verbeteren kan er vanuit het printpdf.sh shell script extra opties aan het ps2pdf commando worden meegegeven. Dit commando (wat op zichzelf ook weer een shell script is) stuurt het op zijn beurt weer naar een volgend commando. Uiteindelijk komt het verzoek om het postscript bestand te converteren bij het commando gs uit. Dit gs commando (wat staat voor Ghostscript ) converteert het postscript bestand naar een PDF document. Om de kwaliteit van het PDF document aan te passen kan al vanaf het printfdf.sh shell script extra opties aan het ps2pdf commando worden meegegeven. Uiteindelijk zullen deze opties van invloed zijn op het gs commando. Eén algemene opties die zal lieden tot een hogere kwaliteit van het PDF document kan als volgt worden toegepast.
Edit het bestand printpdf.sh en voeg de opties '-dPDFSETTINGS=/prepress' toe aan het commando ps2pdf.
Editor (/usr/local/bin/printpdf.sh):
ps2pdf -dPDFSETTINGS=/prepress $1 "/.temp"
Voor alle overige opties (waarvan er nog meer zijn die bepalend zijn voor de lay-out van het PDF document) moet u de documentatie van Ghostscript raadplegen.
- Kunnen links van b.v. een webpagina worden opgenomen in een pdf document?
Nee, met de huidige methode is dat niet mogelijk. Interne links, denk hierbij aan een link vanuit een index van een document naar een hoofdstuk of externe links b.v. naar een website gaan met de huidige methode verloren. Dit is bijna vanzelfsprekend wanneer je je bedenkt dat het postscript in de eerste instantie voor een ‘echte’ printer wordt opgesteld. Hierbij wordt het digitale document afgedrukt op papier en eenmaal op papier gedrukt is het natuurlijk niet meer mogelijk om een website te openen.![]()
Om toch de links in een pdf document op te nemen moet andere software worden geïnstalleerd waarbij tevens voor een andere methode worden gekozen. Voor het maken van een pdf document van een website inclusief links kan 'htmldoc' worden geïnstalleerd.
Deze kan als volgt geïnstalleerd worden.
Shell:
cd /usr/ports/textproc/htmldoc/
make install clean
Een website omzetten in een pdf document kan als volgt gedaan worden.
Shell:
htmldoc -f website.pdf --webpage "http://machiel.generaal.net/index.php?subject=pdfprinter"
Bronnen |
http://www.planetpdf.com/mainpage.asp?webpageid=1736
Een Engelstalige HowTo over dit onderwerp.
http://www.gnu.org/software/ghostscript/ghostscript.html
GNU Ghostscript
http://www.scottnesbitt.net/techdocs/ps2pdf.pdf
Een technische handleiding van ps2pdf.
http://www.easysw.com/htmldoc/
Originele website van de makers van HTMLDOC (Zie F.A.Q. voor meer info)
http://www.google.com/bsd
En natuurlijk mijn favoriete zoekmachine www.google.com of www.google.com/bsd.