为有中文需求的客户提供多渠道中文技术支持.

Tue Dec 16, 2025 1:53 am

如題,我們這邊word中圖片過高,轉到pdf的時候,圖片超出pdf高度,導致轉成pdf沒辦法顯示全,是否有解決方式讓他顯示下一頁或者別的方式
.net core
轉的代碼如下:
using (Document document = new Document())
{
// 从流加载 Word 文档
wordStream.Position = 0; // 重置流位置
document.LoadFromStream(wordStream, Spire.Doc.FileFormat.Docx);

// 创建 PDF 流
MemoryStream pdfStream = new MemoryStream();
// 创建 PDF 参数
ToPdfParameterList pdfParams = new ToPdfParameterList();
pdfParams.PdfConformanceLevel = PdfConformanceLevel.None; // 避免压缩
pdfParams.PdfImageCompression = PdfImageCompression.Auto; // 避免压缩

document.SaveToStream(pdfStream, pdfParams);
pdfStream.Position = 0; // 重置流位置

return pdfStream;
}

jackie.zhang
 
Posts: 6
Joined: Tue Dec 16, 2025 1:07 am

Tue Dec 16, 2025 2:49 am

您好,

感謝您的詢問。
針對Word轉PDF時圖片過高導致顯示不全的問題,建議您在轉換前根據頁面高度,按比例縮放超出頁面的圖片。請參考以下代碼:
Code: Select all
            Document doc = new Document();
            doc.LoadFromFile(@"test.docx");

            // 遍历所有节
            foreach (Section section in doc.Sections)
            {
                // 获取当前节的有效页面高度
                float pageHeight = section.PageSetup.PageSize.Height;
                float pageWidth = section.PageSetup.PageSize.Width;
                float topMargin = section.PageSetup.Margins.Top;
                float bottomMargin = section.PageSetup.Margins.Bottom;
                float leftMargin = section.PageSetup.Margins.Left;
                float rightMargin = section.PageSetup.Margins.Right;
                float usablePageHeight = pageHeight - topMargin - bottomMargin;
                float usablePageWidth = pageWidth - leftMargin - rightMargin;

                // 遍历当前节的所有段落
                foreach (Paragraph paragraph in section.Paragraphs)
                {
                    // 遍历段落中的所有子对象
                    foreach (DocumentObject docObj in paragraph.ChildObjects)
                    {
                        if (docObj is DocPicture)
                        {
                            DocPicture picture = docObj as DocPicture;

                            // 判断图片高度是否超出页面可用高度
                            if (picture.Height > usablePageHeight)
                            {
                                float scale = usablePageHeight / picture.Height;

                                // 等比例缩放图片
                                picture.Width *= scale;
                                picture.Height *= scale;
                            }

                            // 宽度超出页面进行缩放
                            if (picture.Width > usablePageWidth)
                            {
                                float widthScale = usablePageWidth / picture.Width;
                                picture.Width *= widthScale;
                                picture.Height *= widthScale;
                            }
                        }
                    }
                }
            }

            ToPdfParameterList pdfParams = new ToPdfParameterList();
            pdfParams.PdfConformanceLevel = Spire.Doc.PdfConformanceLevel.None; // 避免压缩
            pdfParams.PdfImageCompression = PdfImageCompression.Auto; // 避免压缩
            doc.SaveToFile(@"Sample.pdf", Spire.Doc.FileFormat.PDF);


如果以上方法不能解決您的問題,請將原始輸入文件以及您期望的輸出效果截圖提供給我們,我們將爲您提供更合適的方案。期待您的反饋。
Last edited by talia.liu on Tue Dec 16, 2025 6:15 am, edited 1 time in total.
Sincerely,
Talia
E-iceblue support team
User avatar

talia.liu
 
Posts: 331
Joined: Mon Apr 14, 2025 3:33 am

Tue Dec 16, 2025 5:31 am

根據你的解決方式,我這邊有幾個問題
1.我這邊用windows正常的轉是可以顯示到下一頁
2.縮放會影響觀看,客戶需求是要清晰,能看得見
3.因為專案是多個圖片,會不確定圖片大小,是否有更簡便的方式呈現到下一頁

綜上是否有更好的辦法

jackie.zhang
 
Posts: 6
Joined: Tue Dec 16, 2025 1:07 am

Tue Dec 16, 2025 6:14 am

您好,

感謝您的反饋。
我們的產品是根據微軟word的規範進行轉換的,您可以嘗試先在微軟Word中手動調整再轉換下您這些文檔,查看是否能滿足您的需求。如果微軟word無法實現,我們的產品也無法做到。如果微軟word可以實現,您可以將您的文檔提供給我們以便我們進一步調查。您所提到的"將圖片呈現到下一頁",您是指將整張圖片完整地移至下一頁,還是指將圖片超出當前頁面的部分自動延續到下一頁顯示?如果可以的話,您能否提供一個您預期效果的示意圖以便我們更好地理解您的需求?
Sincerely,
Talia
E-iceblue support team
User avatar

talia.liu
 
Posts: 331
Joined: Mon Apr 14, 2025 3:33 am

Tue Dec 16, 2025 6:55 am

我們這邊嘗試doc轉pdf用windows自帶的可以實現轉的功能,但是用軟體就無法實現,附件給您了,麻煩了

jackie.zhang
 
Posts: 6
Joined: Tue Dec 16, 2025 1:07 am

Tue Dec 16, 2025 7:13 am

您好,

感謝您的反饋。
我復現了您遇到的word轉pdf,圖片顯示不全的問題。我已經將這個問題記錄到我們的bug修復系統中,跟蹤編號爲SPIREDOC-11728。我們的開發人員會進一步調查並修復該問題。一旦有任何進展,我們會第一時間通知您。感謝您的耐心與理解。
Sincerely,
Talia
E-iceblue support team
User avatar

talia.liu
 
Posts: 331
Joined: Mon Apr 14, 2025 3:33 am

Tue Dec 16, 2025 8:00 am

追加BUG,在顯示word的時候如果圖片過大,出現顯示不全的清空,請幫忙看下附件

jackie.zhang
 
Posts: 6
Joined: Tue Dec 16, 2025 1:07 am

Tue Dec 16, 2025 8:44 am

您好,

感謝您提供新的測試文件。
通過對該文件進行測試,我遇到了以下幾個問題:
1.轉換後的PDF頁數與原Word文檔不符。原文件爲9頁,而產品轉換後僅有5頁。
2.部分頁面上的圖片在轉換後完全消失(例如原文件的第3頁和第5頁)。
3.部分圖片在轉換後顯示不全(例如原文件的第4頁)。
我已將上述問題記錄到Bug跟蹤系統中,跟蹤編號爲 SPIREDOC-11730。我們的開發團隊會進行調查和修復,修復進展我們會及時向您同步。對於由此給您帶來的不便,我們深表歉意。
Sincerely,
Talia
E-iceblue support team
User avatar

talia.liu
 
Posts: 331
Joined: Mon Apr 14, 2025 3:33 am

Fri Jan 09, 2026 10:03 am

您好,

感谢您的耐心等待,很高兴通知您我们发布的 Spire.Doc for Net 版本: 14.1.3 ,解决了【SPIREDOC-11728】和【SPIREDOC-11730】问题。请从下面的地址下载新版本验证:
网站下载:https://www.e-iceblue.cn/Downloads/Spire-Doc-NET.html
Nuget:https://www.nuget.org/packages/Spire.Doc/14.1.3
https://www.nuget.org/packages/Spire.Docfor.NETStandard/14.1.3
Sincerely,
Talia
E-iceblue support team
User avatar

talia.liu
 
Posts: 331
Joined: Mon Apr 14, 2025 3:33 am

Return to 中文技术支持

cron