我正在尝试保存将文本转换为轮廓的PDF(根据打印机的要求),但似乎无法使其正常工作。我在iText的网站上找到了一个例子的参考,但从那以后他们改变了他们的网站,我现在似乎无法找到它。我目前正在嵌入字体并且效果很好,但不知道如何将其展平以便将文本转换为轮廓。我正在使用iText 5.5.11 for Java。
答案 0 :(得分:0)
如果您使用的是acrobat和.Net, 您可以使用acrobat iac调用javescript将其保存为eps,这是字体概述。
请参阅JSObjectControlCS示例和javascript SaveAs参考
以下是我的工作样本
///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之前,我们必须添加using convert fonts to outlines preflight
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