versie: 8/11/2010
© W. Philips, Universiteit Gent, 2000-2011
Copyright notice Didactisch materiaal bij de cursus
This powerpoint presentation was developed as an educational aid to the renewed course “Office automation” (Kantoorautomatisering), taught at the University of Gent, Belgium as of the year 2000. This presentation may be used, modified and copied free of charge for non-commercial purposes by individuals and non-for-profit organisations and distributed free of charge by individuals and non-for-profit organisations to individuals and non-for-profit organisations, either in electronic form on a physical storage medium such as a CD-rom, provided that the following conditions are observed: 1. If you use this presentation as a whole or in part either in original or modified form, you should include the copyright notice “© W. Philips, Universiteit Gent, 2000-2002” in a font size of at least 10 point on each slide; 2. You should include this slide (with the copyright conditions) once in each document (by which is meant either a computer file or a reproduction derived from such a file); 3. If you modify the presentation, you should clearly state so in the presentation; 4. You may not charge a fee for presenting or distributing the presentation, except to cover your costs pertaining to distribution. In other words, you or your organisation should not intend to make or make a profit from the activity for which you use or distribute the presentation; 5. You may not distribute the presentations electronically through a network (e.g., an HTTP or FTP server) without express permission by the author. In case the presentation is modified these requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the presentation, and can be reasonably considered independent and separate works in themselves, then these requirements do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the presentation, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. In particular note that condition 4 also applies to the modified work (i.e., you may not charge for it). “Using and distributing the presentation” means using it for any purpose, including but not limited to viewing it, presenting it to an audience in a lecture, distributing it to students or employees for self-teaching purposes, ... Use, modification, copying and distribution for commercial purposes or by commercial organisations is not covered by this licence and is not permitted without the author’s consent. A fee may be charged for such use. Disclaimer: Note that no warrantee is offered, neither for the correctness of the contents of this presentation, nor to the safety of its use. Electronic documents such as this one are inherently unsafe because they may become infected by macro viruses. The programs used to view and modify this software are also inherently unsafe and may contain bugs that might corrupt the data or the operating system on your computer. If you use this presentation, I would appreciate being notified of this by email. I would also like to be informed of any errors or omissions that you discover. Finally, if you have developed similar presentations I would be grateful if you allow me to use these in my course lectures.
Kantoorautomatisering http://telin.UGent.be/~philips/kantoorautomatisering/ Academiejaar 2010-2011
Prof. dr. ir. W. Philips
[email protected]
Prof. dr. ir. W. Philips Department of Telecommunications and Information Processing University of Gent St.-Pietersnieuwstraat 41, B9000 Gent, Belgium
UNIVERSITEIT GENT
E-mail:
[email protected] Fax: 32-9-264.42.95 Tel: 32-9-264.33.85
Telecommunicatie en Informatieverwerking
versie: 8/11/2010
06a.2
© W. Philips, Universiteit Gent, 2000-2011
Mededelingen
versie: 8/11/2010
© W. Philips, Universiteit Gent, 2000-2011
Overzicht
Zelfstudie: “fysische reproductie van documenten”
06a.3
Verschil tussen inhoudelijke, logische en fysische structuur Elektronische documenten 1.Structuur in elektronische documenten 2.Markup-talen en meta-talen: •algemene principes •MSWord, RTF •TeX, LaTeX •HTML, SGML en XML 3.Hypertekst, linken, inbedden en importeren •algemene principes •Word, Office2000, HTML en XML •andere elementen van elektronische documenten 4.paginabeschrijvingstalen: PS, EPS, PDF
06a.4
versie: 8/11/2010
© W. Philips, Universiteit Gent, 2000-2011
Enkele algemene begrippen Paginabeschrijvingstalen
Inleiding
Paginabeschrijvingstalen (page description languages, PDLs) beschrijven de fysische structuur van een document Soms laten ze toe ook logische-structuur informatie aan te geven •in postscript: als commentaar •in PDF: o.a. in het “struct tree” object Moderne PDLs ondersteunen “page independence”: elke pagina kan apart gedrukt worden zonder eerst alle voorgaande pagina’s te doorlopen •in PDF: automatisch •in postscript: door gepaste code te genereren en door “document structuring comments” toe te voegen Moderne PDLs zijn “device-onafhankelijk”: de taal is niet specifiek voor één printer, maar kan door alle printers worden afgedrukt, onafhankelijk van b.v. resolutie, technologie…
06a.6
versie: 8/11/2010
© W. Philips, Universiteit Gent, 2000-2011
Postscript: het beeldvormingsmodel… Paginabeschrijvingstalen
Paginabeschrijvingstalen Postscript
Het postscript beeldvormingsmodel: •een afdruk wordt gevormd door bepaalde gedeelten van een wit blad met ondoorzichtige inkt te vullen •de inkt kan wit, zwart, grijs of gekleurd zijn; met witte inkt kan men een deel van een zwart object verwijderen Basisobjecten die kunnen worden getekend: •geometrische figuren, zowel curves (ééndimensionale objecten) als “gevulde” (tweedimensionale) objecten •tekst •pixelbeelden Het tekenen gebeurt in twee stappen •men traceert een onzichtbaar “huidig pad” •de contour van dit pad of het gebied omsloten door dit pad wordt gevuld met inkt 06a.8
versie: 8/11/2010
© W. Philips, Universiteit Gent, 2000-2011
… Postscript: het beeldvormingsmodel Het huidig pad=een stel al dan niet aaneengesloten punten, lijnen, curves Als het huidig pad af is, •dan kan men het tekenen als lijntekening -dit gebeurt door het pad te vullen met inkt -met een bepaalde lijndikte en kleur •of men kan het tekenen als een gevuld object -het huidig pad wordt eerst gesloten door waar nodig lijnstukken in te voegen -het binnengebied van de contoer wordt gevuld met inkt in een bepaalde kleur Opmerking: in beide gevallen wordt het aanbrengen van inkt beperkt tot het gebied binnen een zogenaamde “clipping boundary” 06a.9
versie: 8/11/2010
© W. Philips, Universiteit Gent, 2000-2011
Het postscript coördinatensysteem y 842
A4 (210mm x 297mm)
x 0 0
595
versie: 8/11/2010
© W. Philips, Universiteit Gent, 2000-2011
Beeldvormingsmodel: voorbeelden lijntekening (stroke)
clipping path
gevuld object (fill)
Het “clipping pad”: alle operaties met clipping die inkt produceren doen dat enkel binnen het gebied omsloten door het clipping pad Alle tekenoperaties worden uitgedrukt in een door de gebruiker gekozen coördinatensysteem (dat later vertaald wordt naar printercoördinaten
06a.10
versie: 8/11/2010
© W. Philips, Universiteit Gent, 2000-2011
Fonts
Per default •worden de coördinaten gerefereerd t.o.v. de linkeronderhoek van de pagina •en worden ze uitgedrukt in pt Het assenstelsel kan echter via commando’s worden geherdefinieerd: •de oorsprong kan verschoven worden •de assen kunnen geschaald worden 06a.11
De vorm van letters kan op twee manieren worden beschreven: •“outline fonts” -beschrijven de contouren van de letters als curven, b.v. onder de vorm van rechte lijnen of kromme splines -zijn resolutieonafhankelijk en kunnen tot een willekeurige grootte worden geschaald •“bitmap fonts”: -beschrijven de letters als kleine beeldjes (verzamelingen van zwarte of witte pixels) -letters worden in verschillende korpsgroottes voorzien; letters in ontbrekende korpsgroottes worden vervangen door letters met een andere korpsgrootte, die al dan niet geschaald worden
06a.12
versie: 8/11/2010
© W. Philips, Universiteit Gent, 2000-2011
versie: 8/11/2010
Fonts
Fonts: opmerkingen
Bitmap fonts kunnen geschaald worden, maar het resultaat is niet zeer goed: vergelijk b.v. Courier (bitmap font) met Courier New (outline font) In Courier: •120pt en 140pt zijn quasi identiek omdat herschalen hier nog slechtere resultaten zou geven
C 100pt
versie: 8/11/2010
CC 120pt
140pt
•160pt bestaat niet in Courier •Let op: uitzicht van deze slide hangt af van schermresolutie 160pt
© W. Philips, Universiteit Gent, 2000-2011
•Als de afgedrukte versie er goed uit ziet betekent dit dat er font-substitutie heeft plaatsgevonden 06a.13
© W. Philips, Universiteit Gent, 2000-2011
Indien documenten fonts gebruiken die de printer niet kent, dan vervangt de printer die meestal door een “default” font, wat zeer slechte resultaten oplevert Mogelijke oplossingen •de printer driver op de computer kan alle nodige fontbibliotheken — indien deze beschikbaar zijn — meesturen in het PS-bestand dat naar de printer wordt gestuurd •het document kan een beschrijving bevatten van de gebruikte niet-courante fonts (“embedded fonts”) •het document kan specificeren welke vervang-fonts de printer driver of de printer eventueel kan gebruiken Let op: sommige fonts kunnen niet ingebed worden omwille van auteursrechtelijke redenen 06a.14
versie: 8/11/2010
De postscript-programmeertaal
Enkele voorbeelden…
Functies •ingebouwde functies, b.v. moveto, pstack •door de gebruiker gedefinieerde functies, die in bibliotheken (“dictionaries”) kunnen worden opgeslagen •functies hebben geen benoemde argumenten: ze lezen hun argumenten van een stapel en plaatsen hun resultaat (of resultaten) op diezelfde stapel ⇒ postfix notatie: “270 360 moveto” betekent dat 270 en 360 op de stapel gezet waarna moveto wordt uitgevoerd Controlestructuren: b.v. if, for, … Variabelen: de meeste data wordt op de stapel opgeslagen, maar benoemde variabelen zijn ook mogelijk •Ondersteunde datatypes: real, boolean, array, string, … •Commentaar=elke lijn die start met %
© W. Philips, Universiteit Gent, 2000-2011
newpath %begin een nieuw pad 270 360 moveto %ga naar (270, 360) 0 72 rlineto %volg gedurende 72 punt een vertikale %lijn naar boven 72 0 rlineto %volg gedurende 72 punt een horizontale %lijn naar rechts 0 -72 rlineto %volg gedurende 72 punt een vertikale %lijn naar beneden closepath %ga naar het beginpunt fill %vul de gevolgde contour met inkt showpage
%druk de pagina af
gs 06a.15
y
360 270
x
06a.16
versie: 8/11/2010
© W. Philips, Universiteit Gent, 2000-2011
versie: 8/11/2010
© W. Philips, Universiteit Gent, 2000-2011
… Enkele voorbeelden…
… Enkele voorbeelden
5 27 add •plaats 5 op de stapel •plaats 27 op de stapel •verwijder de bovenste twee elementen (5 en 27) van de stapel, tel ze op en zet het resultaat op de stapel 5 27 9 sub add •27-9=18 ⇒ stapel is nu: 5 18 •5+18=23 ⇒ stapel is nu: 23 7 3 mul 8 exch sub •7*3=21⇒ stapel is nu: 21 •8 op stapel ⇒ stapel is nu: 21 8 •exch ⇒ stapel is nu: 8 21 •8-21=-13 ⇒ stapel is nu: -13
versie: 8/11/2010
zet “Times Roman” bibliotheek op de stapel schaal tot 20pt stel de geschaalde font in als “huidige font” en verwijder hem van de stapel
72 288 moveto
ga naar 1inch van de linkermarge en 4 inch van de ondermarge
(typography) show showpage
zet het woord “typography” vul de letters met inkt druk blad af
gs 06a.17
© W. Philips, Universiteit Gent, 2000-2011
Definitie functies en variabelen
06a.18
versie: 8/11/2010
© W. Philips, Universiteit Gent, 2000-2011
Interactieve commando’s
De functie def definieert functies en variabelen /name block def definieert name en stelt die gelijk aan de waarde van block Definitie van een variabele: gs /ppi 72 def ⇒ ppi=72 Definitie van een functie: /inch {72 mul} def ⇒ inch is een functie die het bovenste element van de stapel met 72 vermenigvuldigt /text { /Times-Roman findfont 20 scalefont setfont 0 400 moveto show showpage } def ⇒ text is een functie
die een string op stapel afdrukt op een verder lege pagina Gebruik van deze functies 5 inch ⇒ 360 (=5*72) wordt op de stapel geplaatst (zorro) text ⇒ Het woord “zorro” wordt afgedrukt
/Times-Roman findfont 20 scalefont setfont
06a.19
Sommige printers ondertsteunen “interactieve sessies”: de gebruiker geeft rechtstreeks postscript commando’s, b.v. via een telnet-sessie •de printer voert die commando’s uit •en kan ook feedback geven op het computerscherm ⇒ nuttig om foutmeldingen te observeren! Voorbeelden •“==”: verwijder het bovenste element van de stapel en toon het op het scherm •“pstack”: toon de volledige stapel •“statusdict begin pagecount ==”: toon het aantal bladzijden dat de printer ooit heeft afgedrukt 06a.20
versie: 8/11/2010
© W. Philips, Universiteit Gent, 2000-2011
versie: 8/11/2010
© W. Philips, Universiteit Gent, 2000-2011
Postscript figuren …
Postscript figuren: Problemen…
Postscript is niet alleen een paginabeschrijvingstaal maar is ook zeer geschikt als uitwisselingsformaat voor figuren •een PS-figuur wordt b.v. ingebed in een Word document •wanneer het document afgedrukt wordt, genereert een printer driver een postscript beschrijving van de tekst en van alle nietpostscript objecten •de postscript code van de PS-figuur wordt op de gepaste plaats ingevoerd, na een gepaste translatie en schaling van het coördinatenstelsel zodat de figuur op de juiste plaats verschijnt en in de juiste grootte (werkt enkel met PS-printers!)
Belangrijke problemen bij het inbedden van een PS-bestand in een hoofddocument (b.v. een Word document) •als het PS-bestand meerdere pagina’s bevat, dan moet het importerend programma dit kunnen detecteren •het PS-bestand kan instructies bevatten, b.v. een “reset” van de printer, of een “erasepage” (veegt volledige bladzijde uit) die het afdrukken van het hoofddocument in de war sturen •om de figuur op de juiste plaats en in de juiste grootte op het blad te kunnen zetten moet het importerend programma -uitvissen hoe groot de figuur is en waar op het blad hij zou getekend worden indien hij rechtstreeks werd afgedrukt -en vervolgens het coördinatensysteem van de PS-figuur herdefiniëren om hem gepast te schalen en verschuiven -de PS-code in de PS-figuur kan ook dit in de war sturen; extreem voorbeeld: de code kan een verandering van coördinatensysteem waarnemen en ongedaan maken 06a.22
Coreldraw: export as eps
figuur.cdr
figuur.eps
Word: insert picture from file
tekst.doc 06a.21
versie: 8/11/2010
© W. Philips, Universiteit Gent, 2000-2011
…Postscript figuren: Problemen
versie: 8/11/2010
© W. Philips, Universiteit Gent, 2000-2011
Encapsulated postscript (EPS)
De zojuist beschreven problemen zijn groot! •de enige manier om uit te vinden waar een PS-figuur wordt afgedrukt en hoe groot hij is, is het volledig afdrukproces simuleren (b.v. met de ghostscript PS-interpreter) •ongewenste instructies (b.v. erasepage, printer reset, verandering coördinatensysteem) opsporen is moeilijk -ze kunnen verborgen zitten in functies, of in een if commando zodat het niet zeker is in welke omstandigheden ze effectief worden uitgevoerd -het is mogelijk ongewenste instructies te herdefiniëren om ze onschadelijk te maken, maar het is moeilijk te voorspellen hoe dit het tekenen van de figuur beïnvloedt Oplossing •beperkingen opleggen aan de “toegelaten” postscript •bijkomende meta-informatie aan het PS-bestand toevoegen 06a.23
EPS-bestanden zijn geldige postscript bestanden, maar •ze bevatten slechts één pagina •ze bevatten speciale “Document Structuring Comment” velden, -deze beginnen met %% en %! -ze geven meta-informatie over de figuur: afmetingen, positie, gebruikte fonts, … •ze maken geen gebruik van gevaarlijk PS-commando’s, b.v. erasepage, initgraphics, … die het afdrukken van het hoogddocument kunnen in de war sturen •dikwijls bevatten ze een “preview” pixelbeeld: dit is een lagekwaliteit weergave van de figuur die door importerende programma’s kan worden getoond op het scherm, maar die niet wordt gebruikt bij het afdrukken doc 06a.24
versie: 8/11/2010
© W. Philips, Universiteit Gent, 2000-2011
versie: 8/11/2010
© W. Philips, Universiteit Gent, 2000-2011
Voorbeeld
De BoundingBox
%!PS-Adobe-2.0 EPSF-2.0 EPS-indicator %%Title: xfig.fig %%Creator: fig2dev Version 3.2 Patchlevel 1 Oorsprong %%CreationDate: Sat Nov 4 16:44:30 2000 bestand %%For: philips@butthead (Wilfried Philips,,,,) %%Orientation: Portrait %%BoundingBox: 0 0 113 84 Omhullende rechthoek %%BeginSetup save % bewaar “toestand” (d.w.z. stapel, variabelen) -200.0 224.0 translate %kies coördinatensysteem 1 -1 scale Paginainstellingen %%EndSetup %%Magnification: 1.0000 %%EndComments … %code bibliotheken Eigenlijke PS-figuur … %lokale definities van functies … %tekencommando’s rs % herstel de toestand van de PS-interpreter 06a.25
versie: 8/11/2010
%%BoundingBox: 576 288 864 432
A4
coördinaten (in pt): llx
emacs
ps
eps
urx
llx
lly
ury
lly
06a.26
Het “preview” beeld 36 pixels
Paginabeschrijvingstalen 32 pix els
Paginabeschrijvingstalen
Het previewbeeld is een pixelbeeld: een verzameling van gekleurde vierkante puntjes De kleur van een pixel wordt aangegeven met (hier) één of (in het algemeen) meerdere bits b.v.: “7E”=0 1 1 1 1 1 1 0= één witte pixel, 6 zwarte en nog één witte
Portable Document Format
06a.27
ury
De omhullende rechthoek is de kleinste rechthoek die alle inkt van de tekening volledig omsluit Vele EPS-genererende programma’s stellen de omhullende rechthoek foutief gelijk aan de volledige pagina ⇒ oplossing: programma’s zoals ghostscript kunnen de omhullende rechthoek berekenen en corrigeren
© W. Philips, Universiteit Gent, 2000-2011
%%BeginPreview: 36 32 1 32 … % 0000000000 % 7E00040000 breedte: 36 pixels hoogte: 32 pixels % 0000000000 diepte: 1 bit per pixel %%EndPreview aantal lijnen in bestand: 32
urx
versie: 8/11/2010
© W. Philips, Universiteit Gent, 2000-2011
versie: 8/11/2010
PDF …
© W. Philips, Universiteit Gent, 2000-2011
PDF …
Het Portable Document Format (PDF) werd ingevoerd door Adobe als uitwisselingsformaat voor elektronische documenten Open standaard, niet gebonden aan één softwarehuis Niet enkel bedoeld als vervanging voor papieren document, maar als geavanceerd elektronisch document •documenttekst is doorzoekbaar (niet bij postscript) •allerlei navigatiemogelijkheden •geavanceerde mogelijkheden, b.v. hyperlinks en bladwijzers Andere mogelijkheden •encryptie en integriteitscontrole (werd bestand veranderd?) •compressie, elektronische handtekening •toevoegen van commentaar
Vereisten gesteld aan PDF qua reproductiemogelijkheden •kan bekeken en afgedrukt worden met eenvoudig, gratis programma (Acrobat Reader, xpdf, ghostview), onafhankelijk van -specifieke software-pakketten en printer drivers -de beschikbaarheid van specifieke fonts •WYSIWIG: de fysische structuur van een afdruk hangt niet af van de software waarmee het document gedrukt wordt (in een Word document hangt het aantal pagina’s dat afgedrukt wordt af van printer-driver die men gebruikt) •page-independence: elke pagina kan apart afgedrukt worden zonder het volledig document te lezen •grafisch materiaal met hoge kwaliteit en zeer grote bestanden (b.v. > 1000 pagina’s) mogen geen problemen geven
06a.29
versie: 8/11/2010
© W. Philips, Universiteit Gent, 2000-2011
… PDF
06a.30
versie: 8/11/2010
© W. Philips, Universiteit Gent, 2000-2011
PDF vs. postscript De primitieve operaties (b.v. om lijnen te tekenen of om tekst te zetten) in PDF lijken sterk op deze in postscript Belangrijkste verschil: PDF is geen programmeertaal: geen functies, controlestructuren (if-then, for, …) ⇒ minder flexibel dan postscript maar efficiënter te behandelen door computers; men kan b.v. gemakkelijker de code opsporen die een bepaald object tekent
Vereisten qua productiemogelijkheden •gebaseerd op postscript (hergebruik bibliotheken) •gemakkelijk aan te maken door bestaande software ⇒ de gebruiker kan kiezen welke software hij/zij gebruikt •in beperkte mate editeerbaar en aanpasbaar met nieuwe software (b.v. een woord vervangen)
PDF dringt bovendien een strikt gedefinieerde structuur op, waardoor men delen van het document (pagina’s, figuren, …) kan afzonderen, b.v. om ze verder te bewerken of af te drukken PDF bestanden kunnen “fontdescriptoren” bevatten zodat een afwezige font (beter dan in postscript) kan worden vervangen door een goed gelijkend alternatief 06a.31
06a.32
versie: 8/11/2010
© W. Philips, Universiteit Gent, 2000-2011
versie: 8/11/2010
Fontdescriptoren in PDF
Structuur van een PDF-bestand
De fontdescriptor is ongeveer 1-2 kByte groot en bevat •de naam van de font, •maten van de karakters •informatie omtrent de stijl Als een font niet beschikbaar is, dan kan een viewer voor elk ontbrekend karakter een alternatief selecteren met de zelfde maten uit de beschikbare fonts Dit is veel beter dan het systeem in poscript waar men een volledige ontbrekende font zomaar vervangt door een andere, die dikwijls zeer willekeurig wordt gekozen
06a.33
versie: 8/11/2010
© W. Philips, Universiteit Gent, 2000-2011
Structuur van de body van het document catalog
invulvelden
logische structuur fysische structuur
AcroForms
thread
named destinations
…
outline tree
article threads
outline entry
thread
…
outline entry
struct tree
page
pages tree
…
page
logische documentelementen
beads
…
beads
annotations
thumbnails
imageable content
hyperlinks, geluiden, commentaar, … referentie naar zus-object
© W. Philips, Universiteit Gent, 2000-2011
06a.35
emacs
header body
PDF-indicator en versienummer Objecten (tekstblokken, figuren, …) die in het document voorkomen, met naam (voor belangrijke objecten) of anoniem
cross-reference table
Voor alle objecten met een naam: waar kan men ze vinden in het bestand
trailer
Informatie over waar men de crossreference table kan vinden; variabelen, …
Een PDF-bestand is eigenlijk een databank van objecten, die worden opgeslagen in de body Ontleden van een PDF bestand •Men leest eerst de trailer; hierin vindt men de plaats van de cross-reference tabel •In deze tabel vindt men waar in de “body” de beschrijving van een bepaalde pagina, … zich bevindt
versie: 8/11/2010
06a.34
© W. Philips, Universiteit Gent, 2000-2011
Logische structuur in PDF PDF bevat verschillende logische-structuurelementen: •de outline-boom bevat informatie vergelijkbaar met wat “outline view” biedt in MSWord •de “article thread” boom koppelt verwante elementen in een document zoals de gekoppelde tekstvakken in MSWord; mogelijke toepassingen: -navigeren door krantenartikels verspreid over meerdere pagina’s en onderbroken door andere tekst -een cursus kan draden met verschillende moeilijkheidsgraden bevatten •Vanaf PDF versie 1.3 werd een “struct”-boom voorzien de logische structuur beschrijft op een manier die qua mogelijkheden vergelijkbaar is met XML en SGML 06a.36
versie: 8/11/2010
© W. Philips, Universiteit Gent, 2000-2011
versie: 8/11/2010
Aangepast PDF-document …
… Aangepast PDF-document
Als men een PDF-document aanpast:
original header original body original cross-reference section original trailer body update 1 cross-reference section 1 updated trailer 1
body update n cross-reference section n updated trailer n
Deze manier van aanpassen heet “incremental update”
•worden nieuwe of gewijzigde objecten in een nieuw “body” blok geplaatst, •wordt een nieuw cross-reference blok toegevoegd; dit bevat enkel informatie over nieuwe of verwijderde objecten, •en wordt een nieuwe trailer toegevoegd Pdf-lezers lezen steeds eerst de laatste trailer en vinden zo dus eerst de nieuwste cross-reference06a.37 en body-elementen
versie: 8/11/2010
© W. Philips, Universiteit Gent, 2000-2011
Voordelen van deze aanpak •bij aanpassingen moet men niet het volledig bestand opnieuw schrijven ⇒ sneller bij grote bestanden •originele data blijft bewaard ⇒ men kan bewerkingen weer ongedaan maken
06a.38
versie: 8/11/2010
Afdrukken van een PDF-document procsets
PDFdocument
extractie objecten
© W. Philips, Universiteit Gent, 2000-2011
Productie van PDF-bestanden Frame Frame maker maker … …
fonts implementatie objecten in postscript
© W. Philips, Universiteit Gent, 2000-2011
postscript print to file
postscript postscript file file
postscript document
Het afdrukken gebeurt door PDF om te zetten naar postscript die dan naar de printer wordt gestuurd 1. Kopiëren van de objecten op de gewenste pagina’s; deze objecten zijn opgeslagen als PDF-operatoren 2. Toevoegen van “procsets”: postscript bibliotheken die de operatoren uit de PDF-taal implementeren 3. Invoegen van fonts in het ps-bestand; men zoekt de fonts in het PDF document, op de lokale computer, … Indien men ze niet vindt dan zoekt men geschikte vervangfonts Uiteraard gaan links, bladwijzers, commentaar … verloren!
Acrobat Acrobat distiller distiller Word Word … …
PDF PDF files, files, programma’s programma’s
links
PDF PDF file file
Canvas Canvas … …
Excel Excel … … 06a.39
Meestal genereert men postcript waaruit PDF wordt “gedistileerd”; sommige programma’s genereren rechtstreeks PDF, waardoor links, bladwijzers, … 06a.40 bewaard blijven
versie: 8/11/2010
© W. Philips, Universiteit Gent, 2000-2011
Encryptie in PDF…
PDFdocument
bereken sleutel
© W. Philips, Universiteit Gent, 2000-2011
…Encryptie in PDF
Enkel de objecten van het bestand wordt geëncrypteerd; lezers kunnen het document dus ontleden (parsen) en bepaalde objecten terugvinden, zelfs al is het document geëncrypteerd Het RC4-encryptiealgoritme is symmetrisch: dezelfde sleutel wordt gebruikt bij encryptie en decryptie Verschillende technieken worden toegelaten om een paswoord om te zetten in een sleutel wachtwoord
versie: 8/11/2010
Een document heeft twee paswoorden: één voor de eigenaar en één voor de gebruikers De eigenaar bepaalt welke acties de gebruiker op het document mag ondernemen •bekijken, afdrukken, wijzigen, tekst kopiëren, commentaar toevoegen, … Het paswoord voor de gebruikers is optioneel; indien het niet aanwezig is mogen alle gebruikers alle toegelaten operaties uitvoeren
40 bit
RC4 encryptie
versleuteld document 06a.41
versie: 8/11/2010
© W. Philips, Universiteit Gent, 2000-2011
Bibliografie Adobe Systems Inc. PostScript Language Tutorial and Cookbook. Addison-Wesley, 1988. ISBN 0-201-10179-3 Ghostscript en Ghostview voor Windows http://www.dbai.tuwien.ac.at/proj/Refresh/ghost/ (Tip: gebruik gs5.50 en gv2.7 om niet te hoeven registreren)
06a.43
06a.42