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

Tue Oct 19, 2021 8:33 am

您好,

因必須將插入圖片於PDF檔案第一頁的右上角,所以我用 page.Size.Width 和 page.Size.Height 取得長寬後判斷右上角的位置,

可是有些文件在抓取長寬時長跟寬卻顛倒了,以至於判斷錯誤,這些檔案抓取長寬的定位點似乎不是從左上開始而是從右上或是左下。

不知此問題如何解決?謝謝。

GAGATSENG
 
Posts: 2
Joined: Mon Sep 06, 2021 2:24 am

Tue Oct 19, 2021 9:58 am

您好,

感謝您的諮詢。

這個問題可能是由於您的頁面存在旋轉導致的,請用代碼“doc.Pages[0].Rotation”檢查下文檔的旋轉度數。

如果確實存在旋轉,請參考下面的代碼將頁面的旋轉移除,然後再繪製圖片。
Code: Select all
        PdfDocument doc = new PdfDocument();
        doc.LoadFromFile("Source.pdf");
        // 創建一個新的PdfDocument對象
        PdfDocument newDoc = new PdfDocument();
        foreach (PdfPageBase oldPage in doc.Pages)
        {
            PdfPageBase newPage;
            if (oldPage.Rotation == PdfPageRotateAngle.RotateAngle90 || oldPage.Rotation == PdfPageRotateAngle.RotateAngle270)
            {
                newPage = newDoc.Pages.Add(new SizeF(oldPage.Size.Height, oldPage.Size.Width), new PdfMargins(0));
                newPage.Canvas.DrawTemplate(oldPage.CreateTemplate(), new PointF(0, 0));
            }
            else
            {
                newPage = newDoc.Pages.Add(oldPage.Size, new PdfMargins(0));
                newPage.Canvas.DrawTemplate(oldPage.CreateTemplate(), new PointF(0, 0));
            }
        }
        //對newDoc進行繪製圖片的操作......

        // 最後保存newDoc
        newDoc.SaveToFile("result.pdf");


如果這不能解決您的問題,為了幫助我們進一步調查,請提供您的PDF文檔。謝謝!

Sincerely,
Rachel
E-iceblue support team
User avatar

rachel.lei
 
Posts: 1573
Joined: Tue Jul 09, 2019 2:22 am

Wed Oct 20, 2021 5:28 am

您好,

非常感謝您,的確是因為頁面旋轉導致,使用您提供的代碼後問題已解決,謝謝您。

GAGATSENG
 
Posts: 2
Joined: Mon Sep 06, 2021 2:24 am

Wed Oct 20, 2021 5:36 am

您好,

感謝您的反饋。

如果您後續在使用我們產品的過程中, 有遇到任何問題,歡迎隨時聯繫我們。

Sincerely,
Rachel
E-iceblue support team
User avatar

rachel.lei
 
Posts: 1573
Joined: Tue Jul 09, 2019 2:22 am

Return to 中文技术支持