PDF-filer har et internt dokumentformat, der kræver et software-objekt, der "forstår" formatet. Da mange af jer måske har brugt Office-funktionerne i din VB-kode, lad os se kort på Microsoft Word som et eksempel på behandling af et formateret dokument for at sikre os, at vi forstår konceptet. Hvis du vil arbejde med et Word-dokument, skal du tilføje en henvisning til Microsoft Word 12.0 Object Library (til Word 2007) og derefter instantisere Word Application-objektet i din kode.
Dim myWord som Microsoft. Kontor. Interop. Ord. ApplicationClass
'Start Word, og åbn dokumentet.
myWord = CreateObject ("Word. Ansøgning")
mit ord. Synlig = sandt
mit ord. Dokumenter. Open ( "C: \ myWordDocument.docx")
("" skal erstattes med den faktiske sti til dokumentet for at få denne kode til at fungere på din pc.)
Microsoft bruger Word Object Library til at levere andre metoder og egenskaber til din brug. Læs artiklen COM -.NET Interoperabilitet i Visual Basic for at forstå mere om Office COM interop.
Men PDF-filer er ikke en Microsoft-teknologi. PDF - Portable Document Format - er et filformat oprettet af Adobe Systems til udveksling af dokumenter. I årevis var det fuldstændigt proprietært, og du var nødt til at hente software, der kunne behandle en PDF-fil fra Adobe. Den 1. juli 2008 blev PDF afsluttet som en offentliggjort international standard. Nu har alle tilladelse til at oprette applikationer, der kan læse og skrive PDF-filer uden at skulle betale royalties til Adobe Systems. Hvis du planlægger at sælge din software, er du muligvis stadig påkrævet at få en licens, men Adobe leverer dem royaltyfrie. (Microsoft oprettede et andet format kaldet XPS, der er baseret på XML. Adobes PDF-format er baseret på Postscript. XPS blev en offentliggjort international standard den 16. juni 2009.)
Brugen af PDF
Da PDF-formatet er en konkurrent til Microsofts teknologi, giver de ikke meget support og dig nødt til at få et softwareobjekt, der "forstår" PDF-formatet fra en anden end Microsoft lige nu. Adobe returnerer fordel. De understøtter heller ikke Microsoft teknologi så godt. Citat fra den seneste (oktober 2009) Adobe Acrobat 9.1-dokumentation, "Der er i øjeblikket ingen support til udvikling af plug-ins ved hjælp af administrerede sprog som C # eller VB.NET. "(En" plug-in "er en on-demand software komponent. Adobes plug-in bruges til at vise PDF'er i en browser. ")
Da PDF er en standard, har flere virksomheder udviklet software til salg, som du kan tilføje til dit projekt, der vil gøre jobbet, inklusive Adobe. Der er også et antal open source-systemer tilgængelige. Du kan også bruge Word (eller Visio) -objektbibliotekerne til at læse og skrive PDF-filer, men bruge disse store systemer til bare denne ene ting kræver ekstra programmering, har også licensproblemer og gør dit program større end det skal være.
Ligesom du har brug for at købe Office, før du kan drage fordel af Word, skal du også købe den fulde version af Acrobat, før du kan drage fordel af mere end blot læseren. Du vil bruge det fulde Acrobat-produkt på omtrent den samme måde som andre objektbiblioteker, som Word 2007 ovenfor, bruges. Jeg har tilfældigvis ikke det fulde Acrobat-produkt installeret, så jeg kunne ikke give nogen testede eksempler her.
Hvordan
Men hvis du kun skal vise PDF-filer i dit program, giver Adobe en ActiveX COM-kontrol, som du kan tilføje til VB.NET Toolbox. Det vil gøre jobbet gratis. Det er den samme, som du sandsynligvis bruger til at vise PDF-filer alligevel: den gratis Adobe Acrobat PDF Reader.
For at bruge Reader-kontrollen skal du først sikre dig, at du har downloadet og installeret den gratis Acrobat Reader fra Adobe.
Trin 2 er at tilføje kontrollen til VB.NET Toolbox. Åbn VB.NET og start et standard Windows-program. (Microsofts "næste generation" af præsentation, WPF, fungerer ikke med denne kontrol endnu. Beklager!) For at gøre det skal du højreklikke på en vilkårlig fane (f.eks. "Almindelige kontroller") og vælge "Vælg elementer ..." fra den kontekstmenu, der vises. Vælg fanen "COM-komponenter", og klik på afkrydsningsfeltet ved siden af "Adobe PDF Reader", og klik på OK. Du skal være i stand til at rulle ned til fanen "Kontrol" i værktøjskassen og se "Adobe PDF Reader" der.
Nu skal du bare trække kontrollen til din Windows-form i designvinduet og størrelse den passende. Til dette hurtige eksempel vil jeg ikke tilføje nogen anden logik, men kontrollen har masser af fleksibilitet, som jeg fortæller dig, hvordan du finder ud af det senere. I dette eksempel skal jeg bare indlæse en simpel PDF, som jeg oprettede i Word 2007. For at gøre dette, tilføj denne kode til formularen Indlæs begivenhedsprocedure:
Konsol. WriteLine (AxAcroPDF1.LoadFile (_
"C: \ brugere \ Temp \ SamplePDF.pdf"))
Udskift stien og filnavnet på en PDF-fil på din egen computer for at køre denne kode. Jeg viste resultatet af opkaldet kun i outputvinduerne for at vise, hvordan det fungerer. Her er resultatet:
Klik her for at vise illustrationen
Klik på knappen Tilbage i din browser for at vende tilbage
Hvis du vil kontrollere læseren, er der metoder og egenskaber til det også i kontrollen. Men de gode folk hos Adobe har gjort et bedre stykke arbejde end jeg kunne. Download Adobe Acrobat SDK fra deres udviklercenter ( http://www.adobe.com/devnet/acrobat/). AcrobatActiveXVB-programmet i VBSamples-biblioteket i SDK viser dig, hvordan du navigerer i et dokument, henter versionnumrene på den Adobe-software, du bruger, og meget mere. Hvis du ikke har det fulde Acrobat-system installeret - som skal købes fra Adobe - kan du ikke køre andre eksempler.