syntax = "proto3";
package ironpdfengineproto;
import "basic.proto";

option java_package = "com.ironsoftware.ironpdf.internal.proto";
option java_multiple_files = true;

message PdfiumPageP {
  double width = 1;
  double height = 2;
  double print_width = 3;
  double print_height = 4;
  PdfiumPageRotationP page_rotation = 5;
  int32 page_index = 6;
}

message PdfiumPageCollectionP {
  repeated PdfiumPageP pages = 1;
}


message PdfiumGetPagesRequestP {
  PdfDocumentP document = 1;
}
message PdfiumGetPageRequestP {
  PdfDocumentP document = 1;
  int32 index = 2;
}

message PdfiumGetPageCountRequestP {
  PdfDocumentP document = 1;
}

message PdfiumGetPageCountResultP {
  oneof result_or_exception {
    int32 result = 1;
    RemoteExceptionP exception = 2;
  }
}

message PdfiumGetPageResultP {
  oneof result_or_exception {
    PdfiumPageP result = 1;
    RemoteExceptionP exception = 2;
  }
}
message PdfiumGetPagesResultP {
  oneof result_or_exception {
    PdfiumPageCollectionP result = 1;
    RemoteExceptionP exception = 2;
  }
}

message PdfiumCopyPagesRequestP {
  PdfDocumentP document = 1;
  repeated int32 page_indexes = 2;
  optional string password = 3;
  optional bool copy_bookmarks = 4;
}

message PdfiumTransformPageRequestP {
  PdfDocumentP document = 1;
  int32 page_index = 2;
  double translate_x = 3;
  double translate_y = 4;
  double scale_x = 5;
  double scale_y = 6;
}

message PdfiumPdfDocumentInsertRequestP {
  PdfDocumentP main_document = 1;
  int32  insertion_index = 2;
  PdfDocumentP inserted_document = 3;
}

message PdfiumPdfDocumentMergeRequestP {
  repeated PdfDocumentP documents = 1;
}

message PdfiumRemovePagesRequestP {
  PdfDocumentP document = 1;
  repeated int32 page_indexes = 2;
}

message PdfiumRemovePagesResultP {
  oneof result_or_exception {
    int32 result = 1;
    RemoteExceptionP exception = 2;
  }
}

message PdfiumSetPagesRotationRequestP {
  PdfDocumentP document = 1;
  repeated int32 page_indexes = 2;
  PdfiumPageRotationP page_rotation = 3;
}

message PdfiumPageRotationP {
  int32 enum_value = 1;
}

message PdfiumResizePageRequestP {
  PdfDocumentP document = 1;
  int32 page_index = 2;
  double page_width = 3;
  double page_height = 4;
}

message PdfiumExtendPageRequestP {
  PdfDocumentP document = 1;
  int32 page_index = 2;
  double ext_left = 3;
  double ext_right = 4;
  double ext_top = 5;
  double ext_bot = 6;
}

message PdfiumGetPageBoundsRequestP {
  PdfDocumentP document = 1;
  int32 PageIndex = 2;
}

message PdfiumPageBoundsP {
  double left = 1;
  double right = 2;
  double top = 3;
  double bottom = 4;
}

message PdfiumMergePageObjectsAppendRequestP {
  PdfDocumentP src_document = 1;
  int32 src_page_index = 2;
  PdfDocumentP dest_document = 3;
  int32 dest_page_index = 4;
  bool copy_annotations = 5;
}

message PdfiumMergePageObjectsPrependRequestP {
  PdfDocumentP src_document = 1;
  int32 src_page_index = 2;
  PdfDocumentP dest_document = 3;
  int32 dest_page_index = 4;
  bool copy_annotations = 5;
}

message PdfiumPageBoundsPResultP {
  oneof result_or_exception {
    PdfiumPageBoundsP result = 1;
    RemoteExceptionP exception = 2;
  }
}

message PdfiumAddPageRequestP {
  PdfDocumentP document = 1;
  double width = 2;
  double height = 3;
}

message PdfiumAddPageResultP {
  oneof result_or_exception {
    int32 result = 1;
    RemoteExceptionP exception = 2;
  }
}