我正在尝试保存将文本转换为轮廓的PDF(根据打印机的要求(,但似乎无法使其工作。我在iText的网站上找到了一个示例的引用,但是从那时起他们更改了他们的网站,我现在似乎找不到它。我目前正在嵌入字体,效果很好,但不知道如何拼合它以便将文本转换为轮廓。我正在使用iText 5.5.11 for Java。
如果您使用的是 Acrobat 和 .Net,您可以使用 Acrobat IAC 调用 JaveScript 以将其保存到字体轮廓的 EPS。
请参阅 JSObjectControlCS 示例和 JavaScript SaveAs 参考
JSObjectControlCS
保存为
以下是我的工作示例
///fsharp codes
let saveToEPS src dest =
let avDoc = new AcroAVDocClass()
avDoc.Open(src,"") |> ignore
let pdDoc = avDoc.GetPDDoc() :?> CAcroPDDoc
let jsObj = pdDoc.GetJSObject()
let t = jsObj.GetType()
t.InvokeMember(
"saveAs",
BindingFlags.InvokeMethod ||| BindingFlags.Public ||| BindingFlags.Instance,
null,
jsObj,
[|box dest; box "com.adobe.acrobat.eps"|]
)
|> ignore
更新:在保存到 EPS 之前,我们必须添加一个使用转换字体到轮廓印前检查
let convertToOutlinesScript = """
var oProfile = Preflight.getProfileByName("Convert fonts to outlines");
var oThermometer = app.thermometer;
var myPreflightResult = this.preflight( oProfile, false, oThermometer);
if( myPreflightResult.numErrors > 0 ) {
console.println( "Preflight found " + myPreflightResult.numErrors + " Errors.");
} """
t.InvokeMember(
"setAction",
BindingFlags.InvokeMethod ||| BindingFlags.Public ||| BindingFlags.Instance,
null,
jsObj,
[|box "WillSave"; box convertToOutlinesScript|]
) |> ignore