文本链接 (Text Link)
在 PDF 页面中,指向网站、网络资源以及电子邮件地址的超链接文本和普通文本一样。
在处理文本链接之前,用户应首先调用 PageTextLinks.getTextLink
接口 (以 Java 开发语言为例) 来获取一个 textlink
对象。
检索 PDF 页面中的超链接
c++
#include "include/common/fs_common.h"
#include "include/pdf/fs_pdfdoc.h"
#include "include/pdf/fs_pdfpage.h"
#include "include/pdf/fs_search.h"
using namespace foxit;
using namespace foxit::common;
using foxit::common::Library;
using namespace pdf;
...
// Assuming PDFPage page has been loaded and parsed.
// Get the text page object.
TextPage text_page(page);
PageTextLinks pageTextLink(text_page);
TextLink textLink = pageTextLink.GetTextLink(index);
String strURL = textLink.GetURI();
...
C
#include "include/fs_basictypes_c.h"
#include "include/fs_common_c.h"
#include "include/fs_pdfdoc_c.h"
#include "include/fs_pdfpage_c.h"
#include "include/fs_search_c.h"
...
// Assuming FS_PDFPAGE_HANDLE page has been loaded and parsed.
// Get the text page object.
FS_TEXTPAGE_HANDLE text_page;
FSDK_TextPage_Create(page, e_FSTextParseFlagsParseTextNormal, &text_page);
FS_PAGETEXTLINKS_HANDLE pageTextLink;
FSDK_PageTextLinks_Create(text_page, &pageTextLink);
FS_TEXTLINK_HANDLE textLink;
FSDK_PageTextLinks_GetTextLink(pageTextLink, index, &textLink);
FS_WSTR strURL;
FSDK_TextLink_GetURI(textLink, &strURL);
...
java
import com.foxit.sdk.pdf.PDFPage;
import com.foxit.sdk.pdf.annots.*;
...
// Assuming PDFPage page has been loaded and parsed.
...
TextPage text_page = new TextPage(page, TextPage.e_ParseTextNormal);
PageTextLinks page_textlinks = new PageTextLinks(text_page);
TextLink text_link = page_textlinks.getTextLink(index); // specify an index.
String str_uri = text_link.getURI();
...
py
import sys
import site
if sys.version_info.major == 2:
_PYTHON2_ = True
else:
_PYTHON2_ = False
if _PYTHON2_:
# replace with python2 lib path
site.addsitedir('../../../')
from FoxitPDFSDKPython2 import *
else:
from FoxitPDFSDKPython3 import *
...
# Assuming PDFPage page has been loaded and parsed.
# Get the text page object.
text_page = TextPage(page)
pageTextLink = PageTextLinks(text_page)
textLink = pageTextLink.GetTextLink(index)
strURL = textLink.GetURI()
...
objc
#include "FSPDFObjC.h"
...
FSTextPage *textPage = [[FSTextPage alloc] initWithPage:page flags:FSTextPageParseTextNormal];
FSPageTextLinks* page_text_links = [[FSPageTextLinks alloc] initWithPage:textPage];
if (NO == [page_text_links isEmpty]) {
int index = 0;
FSTextLink* text_link = [page_text_links getTextLink:index];
if (NO == [text_link isEmpty])
NSString* url = [text_link getURI];
}
...
js
const FSDK = require("@foxitsoftware/foxit-pdf-sdk-node");
...
// Assuming PDFPage page has been loaded and parsed.
// Get the text page object.
let text_page = new FSDK.TextPage(page);
let pageTextLink = new FSDK.PageTextLinks(text_page);
let textLink = pageTextLink.GetTextLink(index);
let strURL = textLink.GetURI();
...
csharp
using foxit.common;
using foxit.pdf;
...
// Assuming PDFPage page has been loaded and parsed.
// Get the text page object.
TextPage text_page = new TextPage(page, (int)foxit.pdf.TextPage.TextParseFlags.e_ParseTextNormal);
PageTextLinks page_textlinks = new PageTextLinks(text_page);
TextLink text_link = page_textlinks.GetTextLink(index); // specify an index.
string str_url = text_link.GetURI();
...