我透過 Aspose.Words 並且使用 Aspose.Words.Shaping.HarfBuzz 將 docx 轉換成圖片,程式碼如下:
var doc = new Document(sourceDocxPath, loadOptions)
{
LayoutOptions =
{
TextShaperFactory = HarfBuzzTextShaperFactory.Instance
}
};
doc.Save(ouputPngPath, new ImageSaveOptions(SaveFormat.Png));
範例 docx 檔案:
物件跑版1.docx (23.4 KB)
物件跑版2.docx (16.8 KB)
轉換出來的部分文字仍然呈現橫書格式,請問是有圖片上的設定可以調整嗎?
Aspose.Words 版本: 25.8.0
Aspose.Words.Shaping.HarfBuzz 版本:25.8.0
@SzuChiChen
在使用 Aspose.Words 將含有直書文字的 DOCX 轉換為圖片時,部分文字顯示為橫書的問題可能與字形處理有關。您已經使用了 HarfBuzz 字形工廠,這是正確的步驟,但有時候,特定的字體或格式可能會影響轉換結果。
以下是解決此問題的具體步驟:
-
檢查字體:確保您使用的字體支持直書文字。某些字體可能不完全支持直書格式,導致顯示不正確。
-
更新 Aspose.Words:確保您使用的是最新版本的 Aspose.Words,因為新版本可能修復了與字形處理相關的問題。
-
調整 LayoutOptions:您可以嘗試調整 LayoutOptions
的其他屬性,看看是否能改善轉換效果。例如,您可以嘗試設置 TextShaperFactory
為 DefaultTextShaperFactory.Instance
,以查看是否有不同的效果。
-
測試不同的文檔:如果可能,嘗試使用其他包含直書文字的簡單文檔進行測試,以確定問題是否與特定文檔有關。
以下是您可以嘗試的代碼示例:
var doc = new Document(sourceDocxPath, loadOptions)
{
LayoutOptions =
{
TextShaperFactory = HarfBuzzTextShaperFactory.Instance // 或者嘗試 DefaultTextShaperFactory.Instance
}
};
doc.Save(outputPngPath, new ImageSaveOptions(SaveFormat.Png));
請按照上述步驟進行操作,這應該能幫助您解決問題。如果您有其他問題或需要進一步的幫助,請隨時告訴我!期待您的回覆。
使用 DefaultTextShaperFactory 則會造成其他部分文字輸出被轉換成橫書
透過螢幕截圖結果 (預期結果):
DefaultTextShaperFactory 輸出結果:
HarfBuzzTextShaperFactory 輸出結果:
@SzuChiChen 感谢您报告此问题。 我们已经在我们的内部问题跟踪系统中打开了以下新工单,并将根据 免费支持政策 中提到的条款提供它们的修复:
Issue ID(s): WORDSNET-28592 ("物件跑版2.docx")
如果您需要优先支持以及直接联系我们的付费支持管理团队,您可以获得 付费支持服务 。
我只在 "物件跑版 2.docx "文件中看到了这个问题。
下面是 "物件跑版 1.docx "文件的输出结果:
此外,请在测试 Aspose.Words 功能时使用许可证。您可以在此处获取临时许可证 - Policies - Purchase - aspose.com
@vyacheslav.deryushev
您好,感謝您的回應.
我已經申請臨時許可證,並且重新將 docx轉換成 image,但功能變數仍然發生跑版問題
範例檔案:
直書_功能變數.docx (16.9 KB)
預期輸出結果:

Aspose 輸出結果:
@SzuChiChen 是的,这是一份有问题的文件,在上一个帖子中已为其创建了一个票据: WORDSNET-28592.
@vyacheslav.deryushev 仍然有碰到其他類型的直書顯示問題
範例 docx:
input.docx (26.4 KB)
預期結果:
實際輸出結果:
但透過 Aspose.Words 另存出來的 docx 從 MSWord 上看是正常的:
output.docx (19.3 KB)
範例程式碼:
using Aspose.Words;
using Aspose.Words.Shaping.HarfBuzz;
var license = new License();
license.SetLicense("licensePath");
var document = new Document("inputPath")
{
LayoutOptions = { TextShaperFactory = HarfBuzzTextShaperFactory.Instance }
};
document.Save("outputPngPath", SaveFormat.Png);
document.Save("outputDocxPath", SaveFormat.Docx);```
@SzuChiChen 请使用以下代码和 “new ImageSaveOptions”,以正确保存为图像格式。我这边的 25.8 版本无法重现这个问题。
Document doc = new Document("input.docx");
doc.LayoutOptions.TextShaperFactory = HarfBuzzTextShaperFactory.Instance;
doc.Save("output.png", new ImageSaveOptions(SaveFormat.Png));
@SzuChiChen 感谢您报告此问题。 我们已经在我们的内部问题跟踪系统中打开了以下新工单,并将根据 免费支持政策 中提到的条款提供它们的修复:
Issue ID(s): WORDSNET-28599
如果您需要优先支持以及直接联系我们的付费支持管理团队,您可以获得 付费支持服务 。
@vyacheslav.deryushev 我注意到 WORDSNET-28599 狀態是 Closed ,我想詢問該問題是已經進行修復,還是是預期行為呢?
是否有方式能知道 Issue 的處理細節呢?謝謝!
@SzuChiChen 修复程序将在下个月的 25.10 版本中推出。一旦发布,我们将通过论坛通知您。