我正在創建一個Web應用程序,用於在我們的數據庫中維護PDF文檔,該文檔通過自動系統在我們接收傳真時進入。用戶需要能夠查看這些文檔,他們需要能夠處理這些文檔的更常見的事情之一就是翻轉/旋轉各個頁面,當他們以錯誤的方式放入傳真機時。這幾乎總是頁面旋轉180度。我創建了一個函數來做到這一點,這似乎工作,但只有第一次被調用。對這個函數的任何後續調用似乎都不再起作用。與這個函數相關的另一個奇怪的事情是,我還得到了另一個被調用的方法,它將在選定位置向文檔添加一些文本。我傳入文本和一些座標,並將文本寫入文檔中的這些座標,並且一切都很好。這裏的問題是,文檔旋轉後(有一段時間,會旋轉),如果用戶試圖將文本添加到某個文檔,似乎扭轉它放置在文字的座標,文字是顛倒的。PdfSharp:旋轉文檔中的頁面
所有這一切告訴我,最終,我以某種方式做錯了頁面旋轉。我似乎無法找到任何如何在PdfSharp文檔中正確旋轉頁面的好例子,所以一些指導將非常有用,並且非常感謝。提前致謝。
這裏是我目前使用的代碼,旋轉頁面,並添加文本到頁面:
// This is how I'm rotating the page...
public PdfDocument FlipPage(byte[] documentSource, int pageNumber)
{
using (var stream = new MemoryStream())
{
stream.Write(documentSource, 0, documentSource.Length);
var document = PdfReader.Open(stream);
var page = document.Pages[pageNumber - 1];
page.Rotate = 180;
return document;
}
}
// This is how I'm adding text to a page...
public static void AddTextToPage(this PdfDocument document, int pageNumber, Annotation annotation)
{
var page = document.Pages[pageNumber - 1];
annotation.TargetHeight = page.Height.Value;
annotation.TargetWidth = page.Width.Value;
var graphics = XGraphics.FromPdfPage(page);
var textFormatter = new XTextFormatter(graphics);
var font = new XFont("Arial", 10, XFontStyle.Regular);
graphics.DrawString(annotation.Text, font, XBrushes.Red, new PointF((float)annotation.TargetX, (float)annotation.TargetY));
}
選中此項:graphics.RotateTransform(180) –
編譯併成功,但對頁面沒有任何影響。 –