1
TextRenderInfoでPDFのローテーションを抽出しようとしていますが、計算方法がわかりません。 ローテーションの抽出方法
は、私は私がベースラインに計算できることを読んで、私は試験方法
public void test(){
//Extract all the text of PDF
ArrayList<InfoText> arrayInfo = extractInfoText(reader, 1);
//I want to localize a variable that starts with @
InfoText info = null;
for (int i=0; i<arrayInfo.size();i++){
info = arrayInfo.get(i);
if (info.getInfo().getText().indexOf("@")!=-1){
break;
}
}
//Know I want to extract de fontsize and the rotation
//Font size
float size = renderInfo.getAscentLine().getStartPoint().get(1)- renderInfo.getDescentLine().getStartPoint().get(1);
//Rotation????
LineSegment line = info.getInfo().getBaseline();
LineSegment asc = info.getInfo().getAscentLine();
LineSegment desc = info.getInfo().getDescentLine();
}
が
public static ArrayList<InfoText> extractInfoText(PdfReader reader, int intPage) throws IOException {
logger.info("UtilesPDF extractText; IN");
logger.info("UtilesPDF.extractText Page {} ", intPage);
StringBuilder out = new StringBuilder();
ArrayList<InfoText> arrayInfo = new ArrayList<InfoText>();
RenderListener listener = new PdfTextRenderInfo(out, arrayInfo);
PdfContentStreamProcessor processor = new PdfContentStreamProcessor(listener);
PdfDictionary pageDic = reader.getPageN(intPage);
PdfDictionary resourcesDic = pageDic.getAsDict(PdfName.RESOURCES);
processor.processContent(ContentByteUtils.getContentBytesForPage(reader, intPage), resourcesDic);
logger.info("UtilesPDF.extractText Text Page lenght {} ", out.length());
logger.info("UtilesPDF.extractText Text Page arrayCharacters size {} ", arrayInfo.size());
logger.info("UtilesPDF.extractText; OUT");
return arrayInfo;
}
誰かが知っている情報を抽出する方法がわかりませんか?
おかげ
そして明らかな警告:0で除算しないでください。 x1 == x2は、90度のページ回転の頻度を考慮してめったに起きません。 – mkl
ありがとう、私はしようとする –