PDF-filer har ett internt dokumentformat som kräver ett programobjekt som "förstår" formatet. Eftersom många av er kanske har använt Office-funktionerna i din VB-kod, låt oss titta kort på Microsoft Word som ett exempel på att bearbeta ett formaterat dokument för att se till att vi förstår konceptet. Om du vill arbeta med ett Word-dokument måste du lägga till en referens till Microsoft Word 12.0 Object Library (för Word 2007) och sedan instansera Word Application-objektet i din kod.
Dim myWord som Microsoft. Kontor. Interop. Ord. ApplicationClass
"Starta Word och öppna dokumentet.
myWord = CreateObject ("Word. Ansökan")
mitt ord. Synlig = sant
mitt ord. Dokument. Open ( "C: \ myWordDocument.docx")
("" måste ersättas med den faktiska sökvägen till dokumentet för att denna kod ska fungera på din PC.)
Microsoft använder Word Object Library för att tillhandahålla andra metoder och egenskaper för din användning. Läs artikeln COM -.NET Interoperabilitet i Visual Basic för att förstå mer om Office COM interop.
Men PDF-filer är inte en Microsoft-teknik. PDF - Portable Document Format - är ett filformat skapat av Adobe Systems för dokumentutbyte. I flera år var det helt egenutvecklat och du var tvungen att skaffa programvara som kunde behandla en PDF-fil från Adobe. Den 1 juli 2008 slutfördes PDF som en publicerad internationell standard. Nu har alla tillåtelse att skapa applikationer som kan läsa och skriva PDF-filer utan att behöva betala royalty till Adobe Systems. Om du planerar att sälja din programvara kan du fortfarande behöva få en licens, men Adobe tillhandahåller dem royaltyfritt. (Microsoft skapade ett annat format som heter XPS som är baserat på XML. Adobes PDF-format är baserat på Postscript. XPS blev en publicerad internationell standard den 16 juni 2009.)
Användningen av PDF
Eftersom PDF-formatet är en konkurrent till Microsofts teknik ger de inte mycket stöd och du måste få ett mjukvaruobjekt som "förstår" PDF-formatet från någon annan än Microsoft just nu. Adobe returnerar favören. De stöder inte så bra Microsoft-tekniken. Citera från den senaste (oktober 2009) Adobe Acrobat 9.1-dokumentationen "Det finns för närvarande inget stöd för utveckling av plug-ins med hanterade språk som C # eller VB.NET. "(En" plug-in "är en on-demand mjukvara komponent. Adobes plug-in används för att visa PDF-filer i en webbläsare. ")
Eftersom PDF är en standard har flera företag utvecklat mjukvara för försäljning som du kan lägga till i ditt projekt som kommer att göra jobbet, inklusive Adobe. Det finns också ett antal öppna källkodssystem tillgängliga. Du kan också använda Word (eller Visio) -objektbibliotek för att läsa och skriva PDF-filer men använda dessa stora system för bara den här saken kommer att kräva extra programmering, har också licensproblem och kommer att göra ditt program större än det måste vara.
Precis som du behöver köpa Office innan du kan dra nytta av Word, måste du också köpa hela versionen av Acrobat innan du kan dra nytta av mer än bara läsaren. Du skulle använda hela Acrobat-produkten på ungefär samma sätt som andra objektbibliotek, som Word 2007 ovan, används. Jag har inte rådat ha den fulla Acrobat-produkten installerad så jag kunde inte ge några testade exempel här.
Hur
Men om du bara behöver visa PDF-filer i ditt program, tillhandahåller Adobe en ActiveX COM-kontroll som du kan lägga till i VB.NET Toolbox. Det kommer att göra jobbet gratis. Det är samma som du förmodligen använder för att visa PDF-filer ändå: den kostnadsfria Adobe Acrobat PDF Reader.
För att använda Reader-kontrollen måste du först se till att du har laddat ner och installerat den gratis Acrobat Reader från Adobe.
Steg 2 är att lägga till kontrollen i VB.NET Toolbox. Öppna VB.NET och starta en standard Windows-applikation. (Microsofts "nästa generations" presentation, WPF, fungerar inte med den här kontrollen ännu. Förlåt!) För att göra det högerklickar du på valfri flik (t.ex. "Vanliga kontroller") och väljer "Välj objekt ..." från snabbmenyn som dyker upp. Välj fliken "COM-komponenter" och klicka i kryssrutan bredvid "Adobe PDF Reader" och klicka på OK. Du bör kunna rulla ner till fliken "Kontroller" i verktygslådan och se "Adobe PDF Reader" där.
Dra bara kontrollen till ditt Windows-formulär i designfönstret och storlek det på lämpligt sätt. För det här snabba exemplet kommer jag inte att lägga till någon annan logik, men kontrollen har massor av flexibilitet som jag ska berätta för dig hur du kan ta reda på om senare. I det här exemplet kommer jag bara att ladda en enkel PDF som jag skapade i Word 2007. För att göra det lägger du till den här koden i formuläret Load event procedure:
Trösta. WritLine (AxAcroPDF1.LoadFile (_
"C: \ Users \ Temp \ SamplePDF.pdf"))
Ersätt sökvägen och filnamnet för en PDF-fil på din egen dator för att köra den här koden. Jag visade resultatet av samtalet i Output-fönstren bara för att visa hur det fungerar. Här är resultatet:
Klicka här för att visa bilden
Klicka på knappen Tillbaka i webbläsaren för att återgå
Om du vill kontrollera läsaren finns det metoder och egenskaper för det också i kontrollen. Men de goda människorna hos Adobe har gjort ett bättre jobb än jag kunde. Ladda ner Adobe Acrobat SDK från deras utvecklarcenter ( http://www.adobe.com/devnet/acrobat/). AcrobatActiveXVB-programmet i VBSamples-katalogen i SDK visar hur du navigerar i ett dokument, får versionnumren till den Adobe-programvara du använder och mycket mer. Om du inte har hela Acrobat-systemet installerat - som måste köpas från Adobe - kan du inte köra andra exempel.