例如,当我尝试在我的文档中编译此代码时:
\begin{luacode}
\pdfextension literal direct{/Span <</ActualText (First paragraph on page one)>> BDC}
tex.print("my text")
\pdfextension literal direct{EMC}
\end{luacode}
我对文档的编译有一个问题。
如何\pdfextension
在 Lua 代码中使用该命令?
答案1
我将您在评论中的示例翻译为下面可编译的内容。
但 ...
您使用了错误的回调。如果您查看 pdf,您会看到类似以下内容:
%PDF-1.5
%ÌÕÁÔÅØÐÄÆ
/Span <</ActualText (test)>> BDC EMC 3 0 obj
<< /Length 205 >>
这意味着您的 BDC 运营商已结束外部页面流。pdf 已损坏。
文档对回调的描述如下:
每当 LuaTEX 准备将内容移至主垂直列表时,都会调用此回调。您可以使用此回调对页面构建阶段进行专门的操作,例如拼版或列平衡。
\documentclass{article}
\usepackage{luacode}
\pagestyle{empty}
\begin{luacode}
pdf.setcompresslevel(0)
b=0
function f(a)
texio.write_nl("Value "..a)
if a=="new_graf" then
if b%2==0
then
pdf.print ("direct","/Span <</ActualText (test)>> BDC ")
else
pdf.print ("direct","EMC ")
end
b=b+1
end
end
luatexbase.add_to_callback("buildpage_filter",f,"filter")
\end{luacode}
\begin{document}
paragraph one
paragraph two
\end{document}