2017-07-04 16 views
0

Ich bekomme ein PDF von itextsharp generieren. In dieser PDF-Datei kann nicht der gesamte Text ausgewählt werden. Für die Anzeige benötigen wir keine anderen Schriftarten. Wie kann ich diese Art pdf-Datei erzeugen? thksWie kann ich diese Art pdf-Datei durch iutxtsharp erzeugen?

diese Datei: demo file

+0

Ihr PDF enthält keinen Text außer den "39 - 39" am unteren Rand. Dies erklärt, warum Text (außer "39 - 39") nicht ausgewählt werden kann und keine speziellen Schriftarten benötigt werden. Was es stattdessen enthält, sind viele Vektorgrafiken, die etwas zeichnen, was wie Text aussieht. Sie müssen also nur die "PdfContentByte" -Methoden zum Zeichnen von Vektorgrafiken, zum Zeichnen und Füllen von Pfaden und zum Malen Ihrer gewünschten PDF-Inhalte verwenden. – mkl

+0

Thks Ihre Antwort! Ich versuche folgenden Code, aber in der PDF kann der "Beispieltext" noch ausgewählt werden. Wie ich meinen Code verbessere, thk. @mkl – Jiang

+0

In Ihrem Beispiel verwenden Sie immer noch Textoperationen. Textoperationen erfordern Schriftarten. Das Beispieldokument verwendet keine Textoperationen. Es verwendet Operationen wie ** moveTo **, ** lineTo **, ** curveTo ** und ** fill **, um Text zu malen. Um etwas wie dieses Beispiel zu erstellen, verwenden Sie diese Operationen, um Inhalt zu zeichnen. – mkl

Antwort

0

Ich versuche Code folgen, aber im pdf kann der „Beispieltext“ noch ausgewählt werden. Wie ich meinen Code verbessere, thk.

Zeichenfolge fileName = DateTime.Now.ToString();

MemoryStream outputStream = new MemoryStream();// 
    Document doc = new Document((PageSize.A5.Rotate()));// 
    PdfDestination pdfDest = new PdfDestination(PdfDestination.FIT); 
    PdfWriter writer = PdfWriter.GetInstance(doc, outputStream); 
    doc.Open(); 

    PdfContentByte cb = writer.DirectContent; 
    cb.BeginText(); 
    cb.SetFontAndSize(BaseFont.CreateFont(BaseFont.TIMES_ROMAN, BaseFont.CP1252, false), 10f); 
    cb.SetTextMatrix(1.2f, 9.5f); 
    cb.ShowText("Sample text"); 
    cb.EndText(); 
    doc.Close(); 

    outputStream.Close(); 
    Response.ContentType = "application/pdf"; 
    Response.ContentEncoding = System.Text.Encoding.UTF8; 
    Response.AddHeader("content-disposition", "attachment;filename=" + fileName + ".pdf"); 
    Response.Cache.SetCacheability(HttpCacheability.NoCache); 
    Response.OutputStream.Write(outputStream.GetBuffer(), 0, outputStream.GetBuffer().Length); 
    Response.OutputStream.Flush(); 
    Response.OutputStream.Close(); 
Verwandte Themen