tôi đã có vấn đề tương tự như bạn, josephj1989, và tôi thấy những gì tôi tin là câu trả lời của chúng tôi.
Theo this page trong tài liệu PDFSharp,
Việc thực hiện hiện tại của PDFSharp chỉ có một bố cục của bối cảnh đồ họa. Nguồn gốc (0, 0) ở trên cùng bên trái và các tọa độ phát triển từ phải sang trái. Đơn vị đo luôn là điểm (1/72 inch).
Vì vậy, giả sử tôi muốn vẽ một hình ảnh cách 3 inch từ bên trái và 7.5 inch từ phía trên cùng của một trang 8,5 x 11, sau đó tôi sẽ làm một cái gì đó như thế này:
PdfDocument document = GetBlankPdfDocument();
PdfPage myPage = document.AddPage();
myPage.Orientation = PdfSharp.PageOrientation.Portrait;
myPage.Width = XUnit.FromInch(8.5);
myPage.Height = XUnit.FromInch(11);
XImage myImage = GetSampleImage();
double myX = 3 * 72;
double myY = 7.5 * 72;
double someWidth = 126;
double someHeight = 36;
XGraphics gfx = XGraphics.FromPdfPage(myPage);
gfx.DrawImage(myBarcode, myX, myY, someWidth, someHeight);
Tôi đã thử nghiệm này ra bản thân mình với một hình ảnh mã vạch, và tôi phát hiện ra rằng khi bạn sử dụng công thức của họ để đo vị trí, bạn có thể nhận được một mức độ chính xác tại, tốt, 1/72 inch. Không tệ. Vì vậy, tại thời điểm này, nó sẽ là tốt để tạo ra một số loại đóng gói cho các phép đo như vậy để chúng tôi tập trung chủ yếu vào nhiệm vụ trong tầm tay và không phải là chi tiết của chuyển đổi.
public static double GetCoordinateFromInch(double inches)
{
return inches * 72;
}
Chúng ta có thể tiếp tục làm giúp việc khác theo cách này ...
public static double GetCoordinateFromCentimeter(double centimeters)
{
return centimeters * 0.39370 * 72;
}
Với phương pháp helper như vậy, chúng ta có thể làm điều này với các mẫu mã theo thời gian:
double myX = GetCoordinateFromInch(3);
double myY = GetCoordinateFromInch(7.5);
double someWidth = 126;
double someHeight = 36;
XGraphics gfx = XGraphics.FromPdfPage(myPage);
gfx.DrawImage(myBarcode, myX, myY, someWidth, someHeight);
Tôi hy vọng điều này là hữu ích. Tôi chắc chắn bạn sẽ viết mã sạch hơn so với những gì có trong ví dụ của tôi. Ngoài ra, có lẽ có nhiều cách thông minh hơn để đơn giản hóa quy trình này, nhưng tôi chỉ muốn đặt một thứ gì đó ở đây sẽ sử dụng ngay lập tức những gì chúng ta đã thấy trong tài liệu.
Tạo PDF vui vẻ!