1

私は PdfBox の .net を使用して解析し、テキストの場所とともに PDF からテキストを抽出しています。そのために、検索中に次の Java コードを見つけました。

PDFTextStripper stripper = new PDFTextStripper()
{
    @Override
    protected void writeString(String text, List<TextPosition> textPositions) throws IOException
    {
        super.writeString(text, textPositions);

        TextPosition firstProsition = textPositions.get(0);
        TextPosition lastPosition = textPositions.get(textPositions.size() - 1);
        writeString(String.format("[%s - %s / %s]", firstProsition.getXDirAdj(), lastPosition.getXDirAdj() + lastPosition.getWidthDirAdj(), firstProsition.getYDirAdj()));
    }
};
stripper.setSortByPosition(true);
return stripper.getText(document);

次の方法で.netに変換しました。

class PDFTextLocationStripper : PDFTextStripper
{
    public string textWithPostion = "";
    protected override void processTextPosition(TextPosition text)
    {
            textWithPostion += "String[" + text.getXDirAdj() + "," +
            text.getYDirAdj() + " fs=" + text.getFontSize() + " xscale=" +
            text.getXScale() + " height=" + text.getHeightDir() + " space=" +
            text.getWidthOfSpace() + " width=" +
            text.getWidthDirAdj() + "]" + text.getCharacter();
    }

    protected override void writeString(java.lang.String text, java.util.List textPositions) 
    {
            base.writeString(text, textPositions);
            TextPosition firstProsition = (TextPosition)textPositions.get(0);
            TextPosition lastPosition =(TextPosition) textPositions.get(textPositions.size() - 1);
            writeString(String.Format("[%s - %s / %s]", firstProsition.getXDirAdj(), lastPosition.getXDirAdj() + lastPosition.getWidthDirAdj(), firstProsition.getYDirAdj()));
    }

}

しかし、上記のコードで次のようなコンパイル エラーが発生します。

エラー 1 メソッド 'writeString' のオーバーロードはありません 2 つの引数を取ります

エラー 2 'PDFTextLocationStripper.writeString(java.lang.String, java.util.List)': オーバーライドする適切なメソッドが見つかりません

では、場所とともにテキストを抽出できるように、writeString メソッドをオーバーライドするにはどうすればよいでしょうか。

4

1 に答える 1