注釈(Adobe Readerでレンダリングされたもの)に表示されているテキストが、/内容および/RCの項目と異なる場合は、PDFがあります。代わりに、注釈の内容を一致させるために、外観を変更するので、私は反対のことをやりたい、この場合、出現ストリームのテキストを読むには?
Can't change /Contents of annotation
::これは、私はこの質問で扱った問題に関連して、外観のテキストを取得します/内容と/RCの値を一致させるように変更してください。例えば、注釈を表示し、「外観」と/内容が「コンテンツ」に設定されている場合、私のような何かをしたい:
void setContent(PdfDictionary dict)
{
PdfString str = dict.GetAsString(new PdfName("KeyForAppearanceText"));
dict.Put(PdfName.CONTENTS,str);
}
をしかし、外観のテキストが格納されている場所、私は見つけることができません。
private PdfDictionary getAPAnnot(PdfArray annotArray,PdfDictionary annot)
{
PdfDictionary apDict = annot.GetAsDict(PdfName.AP);
if (apDict!=null)
{
PdfIndirectReference ap = (PdfIndirectReference)apDict.Get(PdfName.N);
PdfDictionary apRefDict = (PdfDictionary)pdfController.pdfReader.GetPdfObject(ap.Number);
return apRefDict;
}
else
{
return null;
}
}
この辞書には、以下のHashMapを持っている:
{[/BBox, [-38.7578, -144.058, 62.0222, 1]]}
{[/Filter, /FlateDecode]}
{[/Length, 172]}
{[/Matrix, [1, 0, 0, 1, 0, 0]]}
{[/Resources, Dictionary]}
/リソースがフォントへの間接参照を持っていますが、無内容私は、このコードで/APが参照する辞書を得ました。そのため、アピアランスストリームにはコンテンツデータが含まれていないようです。 /内容と/RC以外
、どこでもコンテンツデータを格納する注釈のデータ構造ではないようです。出品内容はどこで調べるべきですか?
はい、これをFreeText注釈に使用します。特に吹き出し。この解決法はどちらにしてもうまく機能します。ありがとう! – sigil