Avatar billede teutebod Nybegynder
26. august 2004 - 21:41 Der er 2 kommentarer og
1 løsning

Manipulation af PDF dokumenter

Er der nogen der har erfaringer med at ændre i et eksisterende PDF dokument fra C#?

Jeg har brug for at kunne læse et eksisterende PDF dokument ind, og finde nogle specifikke sektioner i dokumentet. Hvorefter jeg skal indsætte noget tekst i disse sektioner og gemme filen igen.

Ved lidt søgning på google har jeg fundt et væld af produkter man kan købe, men for det meste er de kun til at konvertere direkte til et andet format, eller oprettelse af et nyt dokument. Jeg synes ikke at have fundet noget hvor man kan navigere  i dokumentet på en nem måde med c#.
Er der nogen der har erfaringer med dette som har nogle tips, eller kan lede mig over til nogle artikler, eller et billigt komponent som kan hjælpe.
Avatar billede simonvalter Praktikant
26. august 2004 - 21:51 #1
Check
http://itextsharp.sourceforge.net/tutorial/ch01.html
og læs
Advanced: reading PDF
Avatar billede janborup Praktikant
02. september 2004 - 09:52 #2
Her er den sump kode der åbner dokumentet.
---------------------
using System;
using System.IO;

using iTextSharp.text;
using iTextSharp.text.pdf;

public class Chap0106 {
   
    public static void Test() {
       
        Console.WriteLine("Chapter 1 example 6: Meta Information");
       
        // step 1: creation of a document-object
        Document document = new Document();
       
        try {
           
            // step 2:
            // we create a writer that listens to the document
            // and directs a PDF-stream to a file
           
            PdfWriter.getInstance(document, new FileStream("Chap0106.pdf", FileMode.Create));
           
            // step 3: we add some metadata and open the document
           
            document.addTitle("Hello World example");
            document.addSubject("This example explains step 6 in Chapter 1");
            document.addKeywords("Metadata, iText, step 6, tutorial");
            document.addCreator("My program using iText#");
            document.addAuthor("Bruno Lowagie");
            document.addHeader("Expires", "0");
            document.Open();
           
            // step 4: we add a paragraph to the document
            document.Add(new Paragraph("Hello World"));
           
        }
        catch(DocumentException de) {
            Console.Error.WriteLine(de.Message);
        }
        catch(IOException ioe) {
            Console.Error.WriteLine(ioe.Message);
        }
       
        // step 5: we close the document
        document.Close();
    }
}
-----------------

iText komponenten kan hentes her: http://sourceforge.net/project/showfiles.php?group_id=15255&package_id=12596&release_id=215599

Mvh. Jan Borup Coyle
Avatar billede teutebod Nybegynder
02. september 2004 - 21:53 #3
Som SimonValter pointere kan itext ikke finde og ændre eksisterende data i PDF filen. Der findes en del værktøjer der kan tilføje ekstra objekter i dokumentet, men at navigere inde i selve dokumentet, og finde tekst stykker (der kan ligger inde i nogle stream objekter) som skal ændres, er en helt anden sag.

Det kan godt lade sig gøre.. hvis man studerer PDF-dokumentationen (kapitel 3-5) får man en god ide om hvad der skal til. Men problemet, som jeg har forstået det, er at der er så mange måder at pakke disse objekter ind, som ligger inde i selve PDF filen, at det er et helvede at få puttet noget sammen der kan parse samtlige dokument typer. Derudover behøver ens tekst objekter slet ikke at fremkomme kronologisk i filen, da de bare bliver placeret på siden efter nogle koordinater. Så det bliver noget gøgl, hvis man indsætter tekst som fylder mere end hvad der stod i forvejen, da man lige pludseligt skal til at beregne nye koordinater for alle objekter der fremkommer efter det ændrede objekt.

Indtil nu er det ikke lykkes mig at finde en let udvej, så som et komponent til dotnet. Som kan parse alle former for PDF dokumenter og komprimeringsformer af stream-objekterne, og lade mig ændre i disse objekter. For derefter at forskyde efterfølgende tekst, så min tekstlinier ikke smadre sammen. Og så samle dokumentet igen.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester