如何将超链接添加到 PdfDocument 页面画布?

Ale*_*Key 6 java android canvas href hyperlink

再会。我正在使用本机 PrintedPdfDocument 类构建一个简单的 pdf 报告,我需要将带有超链接的文本插入到文档中。这是我对pdf页面的简单实现。

PrintedPdfDocument document = new PrintedPdfDocument(context, attributes);
PdfDocument.PageInfo pageInfo = new PdfDocument.PageInfo.Builder(595, 842, 1).create();
PdfDocument.Page page = document.startPage(pageInfo);
Canvas c = page.getCanvas();
TextPaint p = new TextPaint();
Run Code Online (Sandbox Code Playgroud)

这是我尝试过的几种方法,但仍然没有运气。

使用 Canvas drawText() 方法的第一种方法。结果:没有超链接的“一些链接”。

c.drawText("<a href='https://example.com'>some link</a>", 30, 30, p);
Run Code Online (Sandbox Code Playgroud)

第二种方式使用 SpannableString。结果:“一些链接”。

String link = "https://example.com";  
SpannableString s = new SpannableString("some link");
s.setSpan(new URLSpan(link), 0, link.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
c.drawText(s.toString(), 30, 30, p);
Run Code Online (Sandbox Code Playgroud)

使用 StaticLayout 的第三种方式。结果:空白。

Spanned spanned = Html.fromHtml("<a href='https://example.com'>some link</a>", null, null);
StaticLayout l = new StaticLayout(spanned, p, 30, Layout.Alignment.ALIGN_CENTER, 1.0f, 0.0f, false);
l.draw(c);
Run Code Online (Sandbox Code Playgroud)

TextView 不向 Canvas 绘制任何内容。

TextView tv = new TextView(context);
tv.setLayoutParams(new ViewGroup.LayoutParams(100, 100));
tv.setText(Html.fromHtml("<a href='https://example.com'>some link</a>"));
tv.draw(c);
Run Code Online (Sandbox Code Playgroud)

也许你最好知道如何处理它?