not showing any bookmark in the output file
IDocumentProcessingParams docProc=engine.CreateDocumentProcessingParams();
docProc.setPerformSynthesis(true);
document.Process(docProc);
IFRPages frPages=document.getPages();
IParagraph para=frPages.Item(0).getLayout().getBlocks().Item(0).GetAsTextBlock().getText().getParagraphs().Item(0);
IWord word=para.getWords().Item(0);
System.out.println(word.getText());
para.SetBookmark(word.getFirstSymbolPosition(), para.getLength(), "Branch");
IPDFExportParams pdfParams = engine.CreatePDFExportParams();
pdfParams.getPDFFeatures().setWriteSourceOutline(true);
System.out.println(para.getBookmarkCount());
System.out.println(para.getBookmark(0));
String pdfExportPath = "D:\\DD-94-2040866\\OutputBOOKMARKSFIRSTWORD06_DD-94-2040866.pdf";
displayMessage( "Processing image..." );
document.Process(docProc);
IFRPages frPages1=document.getPages();
IParagraph para1=frPages.Item(0).getLayout().getBlocks().Item(0).GetAsTextBlock().getText().getParagraphs().Item(0) ;
System.out.println(para1.getBookmarkCount());
displayMessage( "Saving image..." );
document.Export( pdfExportPath, FileExportFormatEnum.FEF_PDF, pdfParams);
コメント
2件のコメント
FineReader Engine 11 supports creation of bookmarks in PDF. However, these are not bookmarks in general (Adobe) sense. Bookmarks in Adobe sense are represented by a tree structure and they are displayed in a separate window in Adobe Acrobat. Bookmarks in FREngine sense are simple local hyperlinks. Our API allows to create local hyperlinks as follows:
1) Add a bookmark using the IParagraph::SetBookmark method.
2) Create a hyperlink using the IEngine::CreateHyperlink method and specify the HS_Local type for its scheme (IHyperlink::Scheme).
3) Set an address where the hyperlink points to via the IHyperlink::Target. It should be a name of a bookmark created in step 1.
4) Use the IParagraph::SetHyperlink method to add a hyperlink to a paragraph.
For example, to add a bookmark for the first text block in a document the code will be the following in C#:
...
// Recognize document
displayMessage( "Recognizing..." );
document.Process( null );
// Add a bookmark to the first text block
FREngine.Layout layout1 = engineLoader.Engine.CreateLayout();
layout1 = document.Pages.Item(0).Layout;
for (int i = 0; i < layout1.Blocks.Count; i++)
{
if (layout1.Blocks.Item(i).Type == FREngine.BlockTypeEnum.BT_Text)
{
FREngine.TextBlock block = layout1.Blocks.Item(i).GetAsTextBlock();
block.Text.Paragraphs.Item(0).SetBookmark(0, 5, "MyBookmark");
FREngine.Hyperlink hprLink = engineLoader.Engine.CreateHyperlink();
hprLink.Scheme = FREngine.HyperlinkSchemeEnum.HS_Local;
hprLink.Target = "MyBookmark";
block.Text.Paragraphs.Item(0).SetHyperlink(0, block.Text.Paragraphs.Item(0).Length, hprLink);
break;
}
}
// Save results
displayMessage( "Saving results..." );
// Save results to pdf using 'balanced' scenario
FREngine.PDFExportParams pdfParams = engineLoader.Engine.CreatePDFExportParams();
pdfParams.Scenario = FREngine.PDFExportScenarioEnum.PES_Balanced;
document.Export( Path.Combine( FreConfig.GetSamplesFolder(), @"SampleImages\Demo.pdf" ),
FREngine.FileExportFormatEnum.FEF_PDF, pdfParams );
}
Thanks for your reply
サインインしてコメントを残してください。