Page.cpp 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. #include "Page.h"
  2. #pragma unmanaged
  3. DLLEXP int RunPage(fz_context* ctx, fz_page* page, fz_device* dev, fz_matrix ctm, fz_cookie* cookie) {
  4. MuTry(ctx, fz_run_page(ctx, page, dev, ctm, cookie));
  5. }
  6. DLLEXP int RunPageContents(fz_context* ctx, fz_page* page, fz_device* dev, fz_matrix ctm, fz_cookie* cookie) {
  7. MuTry(ctx, fz_run_page_contents(ctx, page, dev, ctm, cookie))
  8. }
  9. DLLEXP int RunPageAnnotations(fz_context* ctx, fz_page* page, fz_device* dev, fz_matrix ctm, fz_cookie* cookie) {
  10. MuTry(ctx, fz_run_page_annots(ctx, page, dev, ctm, cookie))
  11. }
  12. DLLEXP int RunPageWidgets(fz_context* ctx, fz_page* page, fz_device* dev, fz_matrix ctm, fz_cookie* cookie) {
  13. MuTry(ctx, fz_run_page_widgets(ctx, page, dev, ctm, cookie))
  14. }
  15. #pragma managed
  16. MuPDF::PdfArray^ MuPDF::Page::GetPageBox(PageBoxType boxType) {
  17. pdf_obj* box;
  18. switch (boxType) {
  19. case MuPDF::PageBoxType::Media:
  20. box = pdf_dict_get_inheritable(Context::Ptr, PagePtr, PDF_NAME(MediaBox));
  21. break;
  22. case MuPDF::PageBoxType::Crop:
  23. box = pdf_dict_get_inheritable(Context::Ptr, PagePtr, PDF_NAME(CropBox));
  24. break;
  25. case MuPDF::PageBoxType::Bleed:
  26. box = pdf_dict_get_inheritable(Context::Ptr, PagePtr, PDF_NAME(BleedBox));
  27. break;
  28. case MuPDF::PageBoxType::Trim:
  29. box = pdf_dict_get_inheritable(Context::Ptr, PagePtr, PDF_NAME(TrimBox));
  30. break;
  31. case MuPDF::PageBoxType::Art:
  32. box = pdf_dict_get_inheritable(Context::Ptr, PagePtr, PDF_NAME(ArtBox));
  33. break;
  34. default:
  35. return nullptr;
  36. }
  37. return GcWrap(PdfArray, box);
  38. }
  39. void MuPDF::Page::Run(Device^ dev, Matrix ctm, Cookie^ cookie) {
  40. if (!RunPage(Context::Ptr, _page, dev->Ptr, ctm, Unwrap(cookie))) {
  41. throw MuException::FromContext();
  42. }
  43. }
  44. void MuPDF::Page::RunContents(Device^ dev, Matrix ctm, Cookie^ cookie) {
  45. if (!RunPageContents(Context::Ptr, _page, dev->Ptr, ctm, Unwrap(cookie))) {
  46. throw MuException::FromContext();
  47. }
  48. }
  49. void MuPDF::Page::RunAnnotations(Device^ dev, Matrix ctm, Cookie^ cookie) {
  50. if (!RunPageAnnotations(Context::Ptr, _page, dev->Ptr, ctm, Unwrap(cookie))) {
  51. throw MuException::FromContext();
  52. }
  53. }
  54. void MuPDF::Page::RunWidgets(Device^ dev, Matrix ctm, Cookie^ cookie) {
  55. if (!RunPageWidgets(Context::Ptr, _page, dev->Ptr, ctm, Unwrap(cookie))) {
  56. throw MuException::FromContext();
  57. }
  58. }