2016-04-01 8 views
2

Ich verwende iTextSharp Produkt, um die PDF-Eigenschaften wie folgt zu ändern. Ich kann die Eigenschaft "PDF Producer" überhaupt nicht ändern. Bitte schlagen Sie vor, wo ich falsch liege.iTextSharp .NET PDF - PDF-Produzent kann nicht geändert werden

Die Codezeile info ["Produzent"] = "Mein Produzent";

funktioniert nicht wie es sein sollte.

 string sourcePath = tbPath.Text; 
       IList<string> dirs = null; 
       string pdfName = string.Empty; 
       string OutputPath = string.Empty; 

       DirectoryInfo di = new DirectoryInfo(sourcePath); 
       DirectoryInfo dInfo = Directory.CreateDirectory(sourcePath + "\\" + "TempDir"); 

       OutputPath = Path.Combine(sourcePath,"TempDir");   

       dirs = Directory.GetFiles(di.FullName, "*.pdf").ToList(); 

       for (int i = 0; i <= dirs.Count - 1; i++) 
       { 
        try 
        { 
         PdfReader pdfReader = new PdfReader(dirs[i]); 
         using (FileStream fileStream = new FileStream(Path.Combine(OutputPath, Path.GetFileName(dirs[i])), 
                  FileMode.Create, 
                  FileAccess.Write)) 
         {           

          PdfStamper pdfStamper = new PdfStamper(pdfReader, fileStream); 

          Dictionary<string, string> info = pdfReader.Info; 
          info["Title"] = ""; 
          info["Author"] = ""; 
          info["Producer"] = "My producer"; ////THIS IS NOT WORKING..                 

          pdfStamper.MoreInfo = info;  
          pdfStamper.Close();   
pdfReader.Close();               

         } 
+1

Probieren Sie diese Info.Add ("Produzent", "Mein Produzent"); –

+0

Mögliches Duplikat von [Metadata in iTextSharp setzen] (http://stackoverflow.com/questions/7380837/set-metadata-in-itextsharp) –

+0

Es gibt keinen Effekt. Es ändert sich nicht. – Karan

Antwort

6

Sie können die Herstellerzeile nur ändern, wenn Sie einen Lizenzschlüssel haben. Ein Lizenzschlüssel muss von iText Software gekauft werden. Anweisungen zum Anwenden des Lizenzschlüssels werden zusammen mit diesem Schlüssel gesendet.

Wenn Sie iText kostenlos verwenden möchten, können Sie die Herstellerzeile nicht ändern. Sehen Sie sich die Lizenz-Header jede Datei in der Open-Source-Version von iText:

* In accordance with Section 7(b) of the GNU Affero General Public License, 
* a covered work must retain the producer line in every PDF that is created 
* or manipulated using iText. 

Zur Info: iText Gruppe hat erfolgreich verklagt ein deutsches Unternehmen, das die Produzenten Linie geändert, ohne eine Lizenz zu erwerben. Sie können einige Dokumente zu diesem Fall hier im Zusammenhang finden: IANAL: What developers should know about IP and Legal (Folie 57-62)

By the way, gewann ich eine JavaOne Rockstar Auszeichnung mit diesem Vortrag: https://twitter.com/itext/status/704278659012681728

enter image description here

zusammengefasst: Wenn Sie keine kommerzielle Lizenz für iText haben, können Sie die Herstellerzeile in iText nicht ändern. Wenn Sie eine kommerzielle Lizenz haben, müssen Sie den Lizenzschlüssel anwenden.

+0

Ist es nicht großartig, dass der iText-CEO diese Frage beantwortet hat? – rajeemcariazo

Verwandte Themen