2009-09-23 24 views

Odpowiedz

17

Korzystanie PDF Ostre działa tak:

using System; 
using PdfSharp.Pdf; 
using PdfSharp.Pdf.IO; 

namespace ConsoleApplication1 
{ 
    class Program 
    { 
    static void Main (string[] args) 
    { 
     Program p = new Program(); 
     p.Test(); 

    } 

    public void Test() 
    { 
     PdfDocument document = PdfReader.Open ("Test.pdf"); 

     document.Info.Author = "ME"; 

     document.Save ("Result"); 
    } 
    } 

}

+0

próbuję go, ale producent nie może się zmienić :(jego zły VS2008 mówi, że jest tylko do odczytu – subprime

+3

Z racji tego, że oprogramowanie jest open source, możesz je zmodyfikować, więc jeśli chcesz zmienić producenta dokumentu, musisz zmodyfikować metodę PdfDocument.PrepareForSave(), która używa producenta oryginalnego dokumentu, jeśli dokument jest Zmień właściwości producenta PdfDocumentInformation, aby można było je ustawić i zmodyfikuj metodę PrepareForSave() To zrobi to: – crauscher

+1

Niestety, pdfsharp nie obsługuje metadanych XMP: – mydogisbox

2

Czy klasa PdfDocumentInformation z PDF Sharp spełnia twoje wymagania.

+0

Czy możesz wyjaśnić mi, jak to działa @crauscher – subprime

+0

http://www.pdfsharp.net/wiki/HelloWorld-sample.ashx pokazuje na gorąco, aby utworzyć dokument Pdf i jak zmienić PdfDocumentInformation (PdfDocument.Info). Jeśli chcesz otworzyć istniejący plik Pdf, możesz użyć narzędzia PfdReader class froom PDF sharp – crauscher

+0

Czy mogę usunąć/dodać kod xmp do pdf? Dzięki za próbkę! – subprime

3

Przypuszczam, że można to zrobić za pomocą iTextSharp.

+0

Tak, z właściwością Info masz dostęp do metadanych PDF i z właściwością Metadata masz dostęp do metadanych XML (format XMP) –

0

Pimping tutaj - my company, Atalasoft, makes .NET components for working with images. Część pakietu zawiera możliwość odczytu/zapisu metadanych dokumentu PDF. Nie jest darmowy, ale jest bezpłatny dla aplikacji desktopowych.

Kod do czytania jest prosta:

PdfDocumentMetadata metadata = PdfDocumentMetadata.FromStream(sourceStream); 

aby go edytować i zapisywać je z powrotem do tego samego strumienia:

meta.Title = "Knicholas Knickleby"; 
meta.Author = "Edmund Wells"; 
sourceStream.Seek(0, SeekOrigin.Begin); 
meta.Append(sourceStream, false); // false means don't merge - overwrite 

Pola niestandardowe są obsługiwane przez hashtable.

0

Docotic.Pdf library mogą być używane do odczytu i aktualizacji metadanych w dokumentach PDF.

Istnieje właściwość PdfDocument.Info, która może być używana do change metadata of a PDF document (właściwości takie jak "Autor", "Tytuł").

Istnieje również właściwość PdfDocument.Metadata, która jest przydatna, jeśli trzeba uzyskać dostęp do wbudowanej wersji XMP metadata in a PDF document. Biblioteka obsługuje wstępnie zdefiniowane schematy XMP i może być również używana do ustawiania niestandardowych właściwości aplikacji.

Biblioteka jest bezpłatna dla aplikacji niekomercyjnych. (Biblioteka nie jest już dostępna od 15 lutego 2012)

Nota prawna: Pracuję dla firmy.

+0

Ta biblioteka nie jest darmowa dla niekomercyjnych aplikacji. Uwaga z informacji: Licencja testowa Możesz wypróbować Docotic.Pdf z licencją testową. W trybie oceny komponent może być używany tylko do celów testowych. Nie wolno redystrybuować biblioteki Docotic.Pdf ani żadnego produktu zbudowanego w wersji próbnej Docotic.Pdf. Ponadto, w przypadku korzystania z trybu próbnego biblioteka nakłada następujące ograniczenia: - Dokumenty wygenerowane w bibliotece zawierają zawiadomienie o ocenie wydrukowane na każdej stronie. -Dla wszystkich istniejących dokumentów tylko połowa stron zostanie odczytana przez bibliotekę. – subprime

+0

@ subprime Proszę zobaczyć tutaj: http://bitmiracle.com/pdf-library/free-pdf-library.aspx Docotic.Pdf Library jest bezpłatna do użytku niekomercyjnego. Jeśli nie naliczasz opłat za swój produkt, a produkt nie ma żadnego innego celu komercyjnego, możesz bezpłatnie uzyskać licencję na wersję Enterprise Edition for Application. – Bobrovsky

+0

Od 15 lutego 2012 r. Nie jest już [bezpłatny do użytku niekomercyjnego] (http://bitmiracle.com/pdf-library/free-pdf-library.aspx). –

6

Dla PDFSharp: Jeśli chcesz zmienić/dodać metadane na Właściwości niestandardowe w formacie PDF można użyć PdfDocument.Info.Elements sprzeciwu.

String filename = @"d:\temp\Hugo-input.pdf"; 
    String outputfile = @"d:\temp\Hugo-output.pdf"; 
    PdfDocument document = PdfReader.Open(filename); 
    document.Info.Elements.Add(new KeyValuePair<String,PdfItem>("/MyKey",new PdfString("MyValue"))); 
    document.Save(outputfile); 

Zawsze zaczynaj klucz niestandardowy z ukośnikiem!

Klucz i wartość można znaleźć po otwarciu tego dokumentu w programie Adobe Acrobat Reader -> Plik -> Właściwości -> Niestandardowy.

Działa to z PDFSharp 1.32

Powiązane problemy