Heim >Backend-Entwicklung >C++ >Wie extrahiere ich mit iTextSharp Text mit Formatierung aus PDFs?

Wie extrahiere ich mit iTextSharp Text mit Formatierung aus PDFs?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2025-01-11 10:46:41874Durchsuche

How to Extract Text with Formatting from PDFs Using iTextSharp?

Formatierten Text mit iTextSharp extrahieren

Einleitung:

iTextSharp ist eine leistungsstarke Bibliothek zum Bearbeiten und Generieren von PDF-Dokumenten, aber es ist manchmal schwierig, Text im gewünschten Format zu extrahieren. Dieser Artikel bietet eine Methode zum Extrahieren von Text und Formatierungsinformationen aus PDF mithilfe von iTextSharp.

Benutzerdefinierte Extraktionsstrategie:

Um formatierten Text zu extrahieren, können Sie eine benutzerdefinierte ITextExtractionStrategy-Implementierung erstellen. Diese Richtlinie definiert, wie mit Informationen zur Textwiedergabe umgegangen wird.

Codeausschnitt:

Der folgende Code definiert eine benutzerdefinierte Strategie, die Änderungen an Grundlinie, Schriftartname und Schriftgröße verfolgt und HTML mit entsprechendem Stil generiert:

<code>public class TextWithFontExtractionStategy : iTextSharp.text.pdf.parser.ITextExtractionStrategy
{
    // ... (此处省略)

    public void RenderText(iTextSharp.text.pdf.parser.TextRenderInfo renderInfo)
    {
        // 确定字体属性
        string curFont = renderInfo.GetFont().PostscriptFontName;
        if (renderInfo.GetTextRenderMode() == (int)TextRenderMode.FillThenStrokeText)
        {
            curFont += "-Bold";
        }

        // 检查基线、字体或字体大小的变化
        Vector curBaseline = renderInfo.GetBaseline().GetStartPoint();
        Single curFontSize = renderInfo.GetAscentLine().GetEndPoint()[Vector.I2] - curBaseline[Vector.I2];
        if ((this.lastBaseLine == null) || (curBaseline[Vector.I2] != lastBaseLine[Vector.I2]) ||
            (curFontSize != lastFontSize) || (curFont != lastFont))
        {
            // 生成带有更新样式的HTML span
            result.AppendFormat("</code>

Verwendung:

Um eine benutzerdefinierte Strategie zu verwenden, können Sie diese beim Extrahieren von Text angeben:

<code>PdfReader reader = new PdfReader("MyDocument.pdf");
TextWithFontExtractionStategy strategy = new TextWithFontExtractionStategy();
string textWithFormatting = PdfTextExtractor.GetTextFromPage(reader, 1, strategy);</code>

Ausgabe:

Die Variable

textWithFormatting enthält den extrahierten Text mit HTML-Tags, die die Formatierungsinformationen widerspiegeln, einschließlich Schriftart und Schriftgröße.

Fazit:

Mit dieser benutzerdefinierten Extraktionsstrategie können Sie PDF-Text im gewünschten Format extrahieren. Dabei handelt es sich um ein leistungsstarkes Tool, mit dem sich Text und Stile in PDF-Dokumenten präzise reproduzieren lassen.

Das obige ist der detaillierte Inhalt vonWie extrahiere ich mit iTextSharp Text mit Formatierung aus PDFs?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn