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

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

message PdfiumCharObjectP
{
  double left = 1;
  double right = 2;
  double top = 3;
  double bottom = 4;
  double looseleft = 5;
  double looseright = 6;
  double loosetop = 7;
  double loosebottom = 8;
  string contents = 9;
  double angle = 10;
}

message PdfiumCharObjectCollectionP
{
  repeated PdfiumCharObjectP value = 1;
}

message PdfiumGetCharObjectCollectionResultP {
  oneof result_or_exception {
    PdfiumCharObjectCollectionP result = 1;
    RemoteExceptionP exception = 2;
  }
}

message PdfiumPagenateDocumentRequestP {
  PdfDocumentP document = 1;
  double new_width = 2;
  double new_height = 3;
  int32 cols = 4;
  int32 rows = 5;
  bool draw_borders = 6;
}

message PdfiumOpenNewDocumentRequestP {
  double width = 1;
  double height = 2;
}

message PdfiumGetCharObjectCollectionRequestP {
  PdfDocumentP document = 1;
  int32 page_index = 2;
}

message PdfiumTextObjectP
{
  double left = 1;
  double right = 2;
  double top = 3;
  double bottom = 4;
  string contents = 5;
  string color = 6;
  int32 PageIndex = 7;
  double MatrixA = 8;
  double MatrixB = 9;
  double MatrixC = 10;
  double MatrixD = 11;
  double MatrixE = 12;
  double MatrixF = 13;
}

message PdfiumTextObjectCollectionP
{
  repeated PdfiumTextObjectP value = 1;
}

message PdfiumGetTextObjectCollectionResultP {
  oneof result_or_exception {
    PdfiumTextObjectCollectionP result = 1;
    RemoteExceptionP exception = 2;
  }
}

message PdfiumGetTextObjectCollectionRequestP {
  PdfDocumentP document = 1;
  int32 page_index = 2;
}

message PdfiumPathSegmentObjectP
{
    double x = 1;
    double y = 2;
    bool is_close = 3;
    int32 type = 4;
}

message PdfiumPathObjectP
{
  double left = 1;
  double right = 2;
  double top = 3;
  double bottom = 4;
  string FillColor = 5;
  string StrokeColor = 6;
  int32 PageIndex = 7;
  double MatrixA = 8;
  double MatrixB = 9;
  double MatrixC = 10;
  double MatrixD = 11;
  double MatrixE = 12;
  double MatrixF = 13;
  repeated PdfiumPathSegmentObjectP points = 14;
  int32 FillMode = 15;
  bool IsStroked = 16;
}

message PdfiumPathObjectCollectionP
{
  repeated PdfiumPathObjectP value = 1;
}

message PdfiumGetPathObjectCollectionResultP {
  oneof result_or_exception {
    PdfiumPathObjectCollectionP result = 1;
    RemoteExceptionP exception = 2;
  }
}

message PdfiumGetPathObjectCollectionRequestP {
  PdfDocumentP document = 1;
  int32 page_index = 2;
}

message PdfiumImageObjectP
{
  double left = 1;
  double right = 2;
  double top = 3;
  double bottom = 4;
  int32 page_index = 5;
  bytes image_data = 6;
  double MatrixA = 7;
  double MatrixB = 8;
  double MatrixC = 9;
  double MatrixD = 10;
  double MatrixE = 11;
  double MatrixF = 12;
}

message PdfiumImageObjectCollectionP
{
  repeated PdfiumImageObjectP value = 1;
}

message PdfiumGetImageObjectCollectionResultP {
  oneof result_or_exception {
    PdfiumImageObjectCollectionP result = 1;
    RemoteExceptionP exception = 2;
  }
}

message PdfiumGetImageObjectCollectionRequestP {
  PdfDocumentP document = 1;
  int32 page_index = 2;
}

message PdfiumFontInfoP
{
  uint32 obj_num = 1;
  bool is_embedded = 2;
  string name = 3;
  int32 type = 4;
  uint32 descendant_font_obj_num = 5;
  bool is_subsetted = 6;
}

message PdfiumFontInfoCollectionP
{
  repeated PdfiumFontInfoP value = 1;
}

message PdfiumGetFontInfoCollectionResultP {
  oneof result_or_exception {
    PdfiumFontInfoCollectionP result = 1;
    RemoteExceptionP exception = 2;
  }
}

message PdfiumGetFontInfoCollectionRequestP {
  PdfDocumentP document = 1;
}

message PdfiumPdfDocumentConstructorStreamP {
  oneof request {
    InfoP info = 1;
    bytes pdf_bytes_chunk = 2;
  }
  message InfoP {
    optional string user_password = 1;
    optional string owner_password = 2;
    optional int32 track_changes = 3;
  }
}
message PdfiumConvertToPdfARequestStreamP {
  oneof request {
    InfoP info = 1;
    bytes icc_bytes_chunk = 2;
  }
  message InfoP {
    PdfDocumentP document = 1;
    int32 convtVer = 2;
    bool isAVariant = 3;
  }
}

message PdfiumEmbedFileToPdfARequestStreamP {
    oneof request {
        InfoP info = 1;
        bytes embedFileBytesChunk = 2;
    }
    message InfoP {
        PdfDocumentP document = 1;
        string embedFileName = 2;
        string afDesc = 3;
        int32 conformLvlIdx = 4;
        int32 docTypeIdx = 5;
        int32 propVeridx = 6;
        int32 schNamespaceIdx = 7;
        int32 schPrefixIdx = 8;
        int32 afRelIdx = 9;
    }
}

message PdfiumConvertToPdfUARequestP {
  PdfDocumentP document = 1;
  int32 lang = 2;
}

message PdfiumConvertToPdfUAForScreenReaderRequestP {
    PdfDocumentP document = 1;
    string html_dom = 2;
    int32 lang = 3;
}

message PdfiumGetPaperSizePresetRequestP {
  string name = 1;
}

message PdfiumPaperSizePresetP {
  double width = 1;
  double height = 2;
}

message PdfiumGetPaperSizePresetResultP {
  oneof result_or_exception {
    PdfiumPaperSizePresetP result = 1;
    RemoteExceptionP exception = 2;
  }
}

message PdfiumRawSignatureChunkWithIndexP {
  int32 signature_index = 1;
  bytes raw_signature_chunk = 2;
}

message PdfiumPdfSignatureP {
  int32 index = 1;
  string timestamp_url = 2;
  string password = 3;
}

message PdfiumPdfSignatureCollectionP {
  repeated PdfiumPdfSignatureP signature = 1;
}

message PdfiumGetBinaryDataRequestStreamP {
  oneof request {
    InfoP info = 1;
    PdfiumPdfSignatureCollectionP signatures = 2;
    PdfiumRawSignatureChunkWithIndexP raw_signatures_chunk = 3;
  }
  message InfoP {
    PdfDocumentP document = 1;
    bool isIncremental = 2;
    bool isWatermarked = 3;
  }
}

message PdfiumGetRevisionRequestP {
  PdfDocumentP document = 1;
  int32 index = 2;
}
