Có cách nào để chuyển đổi mọi trang trong tài liệu XPS thành hình ảnh bằng C#?Làm cách nào để chuyển đổi mọi trang trong tệp XPS thành hình ảnh trong C#?
Trả lời
Tôi đã chạy qua bài đăng trên blog này từ Josh Twist dường như làm những gì bạn muốn.
On tìm kiếm trên mạng, có rất nhiều các chương trình/thử nghiệm trả tiền yêu cầu bồi thường để làm điều này (tôi đã không cố gắng nào của họ, vì vậy tôi không thể xác/liệt kê bất kỳ trong số họ). Tôi cho rằng bạn muốn viết mã của riêng bạn.
Đây là 'thịt' của bài đăng blog (đặc):
Uri uri = new Uri(string.Format("memorystream://{0}", "file.xps"));
FixedDocumentSequence seq;
using (Package pack = Package.Open("file.xps", ...))
using (StorePackage(uri, pack)) // see method below
using (XpsDocument xps = new XpsDocument(pack, Normal, uri.ToString()))
{
seq = xps.GetFixedDocumentSequence();
}
DocumentPaginator paginator = seq.DocumentPaginator;
Visual visual = paginator.GetPage(0).Visual; // first page - loop for all
FrameworkElement fe = (FrameworkElement)visual;
RenderTargetBitmap bmp = new RenderTargetBitmap((int)fe.ActualWidth,
(int)fe.ActualHeight, 96d, 96d, PixelFormats.Default);
bmp.Render(fe);
PngBitmapEncoder png = new PngBitmapEncoder();
png.Frames.Add(BitmapFrame.Create(bmp));
using (Stream stream = File.Create("file.png"))
{
png.Save(stream);
}
public static IDisposable StorePackage(Uri uri, Package package)
{
PackageStore.AddPackage(uri, package);
return new Disposer(() => PackageStore.RemovePackage(uri));
}
Vui lòng tham khảo chấp nhận answer nó là thực sự hữu ích (nó đã giúp tôi cũng) .Tôi chỉ muốn lưu ý đến một số rất điểm quan trọng trong giải pháp đó.
nếu bạn đang thực hiện của riêng DocumentPaginator (như trong trường hợp của tôi) sau đó mã mà sẽ không làm việc bởi vì chúng tôi sẽ không có được tham chiếu đến Paginator cụ thể của bạn từ báo cáo kết quả
DocumentPaginator paginator = seq.DocumentPaginator;
Đúc này để paginator của riêng bạn cũng sẽ không làm việc.
cũng là giải pháp rất phức tạp trong trường hợp bạn có Paginator
của riêng mình.
Vì vậy, tôi đã phát triển một giải pháp đơn giản, dựa trên giải pháp được chấp nhận của câu hỏi này và điều này làm việc chính xác khi cần thiết.
// create your own paginator instead of this
// this is my specific own implementation for DocumentPaginator class
ReportPaginator paginator = new ReportPaginator(report);
Visual visual = paginator.GetPage(0).Visual; // first page - loop for all
RenderTargetBitmap bmp = new RenderTargetBitmap((int)paginator.PageSize.Width, (int)paginator.PageSize.Height, 96d, 96d, PixelFormats.Default);
bmp.Render(visual);
PngBitmapEncoder png = new PngBitmapEncoder();
png.Frames.Add(BitmapFrame.Create(bmp));
using (MemoryStream sm = new MemoryStream())
{
png.Save(sm);
return sm.ToArray();
}
- 1. Làm cách nào để chuyển đổi LinearLayout thành hình ảnh?
- 2. Chuyển đổi trang web thành hình ảnh
- 3. Làm cách nào để in các tệp XPS?
- 4. Làm cách nào để chuyển đổi hình ảnh màu thành màu xám trong MATLAB?
- 5. XSLT: Chuyển đổi dữ liệu base64 thành tệp hình ảnh
- 6. Chuyển đổi tệp nhị phân thành hình ảnh
- 7. Chuyển đổi chuỗi hình ảnh thành tệp video android java
- 8. Chuyển đổi tệp .html sang hình ảnh
- 9. Chuyển đổi PDF nhiều trang thành một hình ảnh
- 10. Làm thế nào để chuyển đổi mảng byte thành tệp hình ảnh?
- 11. Làm cách nào để chuyển đổi Perl thành C?
- 12. làm thế nào để chuyển đổi hình ảnh thành mảng byte trong java?
- 13. Chuyển đổi hình ảnh thành nhị phân?
- 14. Chuyển đổi InputStream (Hình ảnh) thành ByteArrayInputStream
- 15. Làm cách nào để chuyển đổi hình ảnh thành các phân đoạn ký tự?
- 16. Chuyển đổi tệp PDF sang hình ảnh
- 17. Chuyển đổi chuỗi HTML thành hình ảnh
- 18. Chuyển đổi hình ảnh Gif thành NSData
- 19. Chuyển đổi hình ảnh thành ma trận trong python
- 20. Làm cách nào để chuyển đổi tệp XPS sang hình ảnh có chất lượng cao (thay vì độ phân giải thấp bị mờ)?
- 21. Làm thế nào để chuyển đổi nút thành hình ảnh trong javafx 2.1?
- 22. Chuyển chuỗi Base64 thành tệp hình ảnh?
- 23. Làm cách nào để chuyển đổi tệp đầu vào thành mã hóa UTF-8 trong Perl?
- 24. Làm thế nào để chuyển đổi hình ảnh sang html?
- 25. Perl chuyển đổi hình ảnh thành base64
- 26. MỌI MỌI hình ảnh trong tải tệp CSS khi tệp được tải chưa?
- 27. Làm cho trang web thành hình ảnh
- 28. Chuyển đổi hình ảnh thành 2 màu trong Java
- 29. Imagemagick chuyển đổi nhiều hình ảnh thành kích thước pdf
- 30. Chuyển đổi base64 sang Hình ảnh trong C#
Thankyou rất nhiều! Đây chính xác là những gì tôi muốn; và tôi đã sử dụng nó và nó hoạt động! Cảm ơn một lần nữa! –
Tuyệt vời, vui vì nó đã giúp. –
Cảm ơn giải pháp này. Bạn sẽ nghĩ rằng một hoạt động tương đối đơn giản sẽ dễ dàng hơn nhiều so với mã khá dày đặc này ... nó không chính xác rõ ràng. –