Skip to content

Commit 1038e03

Browse files
authored
Merge pull request #135 from aspose-pdf-cloud/pdfcloud-5125-added-snippets-tables
PDFCLOUD-5125: added snippets Tables
2 parents 15327bb + d62b2fa commit 1038e03

File tree

12 files changed

+389
-0
lines changed

12 files changed

+389
-0
lines changed

Uses-Cases/Tables/AddTable.cs

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
using Aspose.Pdf.Cloud.Sdk.Model;
2+
3+
namespace Tables
4+
{
5+
public class AddTable
6+
{
7+
public static async Task Append(TablesHelper helper, string documentName, int pageNaumber, string outputName, string remoteFolder)
8+
{
9+
await helper.UploadFile(documentName);
10+
11+
Table table = TableCreate.New();
12+
13+
AsposeResponse response = await helper.pdfApi.PostPageTablesAsync(documentName, pageNaumber, new List<Table>() { table }, folder: remoteFolder);
14+
15+
if (response == null)
16+
Console.WriteLine("AddTable(): Unexpected error!");
17+
else if (response.Code < 200 || response.Code > 299)
18+
Console.WriteLine("AddTable(): Failed to append Table in the document.");
19+
else
20+
{
21+
Console.WriteLine("AddTable(): New table successfully appended in the document '{0}.", documentName);
22+
await helper.DownloadFile(documentName, outputName, "add_table_");
23+
}
24+
}
25+
}
26+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
using Aspose.Pdf.Cloud.Sdk.Model;
2+
3+
4+
namespace Tables
5+
{
6+
public class DeleteTableOnPage
7+
{
8+
public static async Task Remove(TablesHelper helper, string documentName, int pageNumber, string outputName, string remoteFolder)
9+
{
10+
await helper.UploadFile(documentName);
11+
12+
AsposeResponse response = await helper.pdfApi.DeletePageTablesAsync(documentName, pageNumber, folder: remoteFolder);
13+
14+
if (response == null)
15+
Console.WriteLine("DeleteTableOnPage(): Unexpected error!");
16+
else if (response.Code < 200 || response.Code > 299)
17+
Console.WriteLine("DeleteTableOnPage(): Failed to remove Tables from the document.");
18+
else
19+
{
20+
Console.WriteLine("DeleteTableOnPage(): Tables successfully deleted from '{0}' page of the document '{1}.", pageNumber, documentName);
21+
await helper.DownloadFile(documentName, outputName, "del_tables_page_");
22+
}
23+
}
24+
}
25+
}

Uses-Cases/Tables/DeleteTables.cs

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
using Aspose.Pdf.Cloud.Sdk.Model;
2+
3+
4+
namespace Tables
5+
{
6+
public class DeleteTables
7+
{
8+
public static async Task Remove(TablesHelper helper, string documentName, string outputName, string remoteFolder)
9+
{
10+
await helper.UploadFile(documentName);
11+
12+
AsposeResponse response = await helper.pdfApi.DeleteDocumentTablesAsync(documentName, folder: remoteFolder);
13+
14+
if (response == null)
15+
Console.WriteLine("DeleteTables(): Unexpected error!");
16+
else if (response.Code < 200 || response.Code > 299)
17+
Console.WriteLine("DeleteTables(): Failed to remove Tables from the document.");
18+
else
19+
{
20+
Console.WriteLine("DeleteTables(): Tables successfully deleted from the document '{0}.", documentName);
21+
await helper.DownloadFile(documentName, outputName, "del_tables_");
22+
}
23+
}
24+
}
25+
}

Uses-Cases/Tables/DeleteTeable.cs

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
using Aspose.Pdf.Cloud.Sdk.Model;
2+
3+
4+
namespace Tables
5+
{
6+
public class DeleteTable
7+
{
8+
public static async Task Remove(TablesHelper helper, string documentName, string tableId, string outputName, string remoteFolder)
9+
{
10+
await helper.UploadFile(documentName);
11+
12+
AsposeResponse response = await helper.pdfApi.DeleteTableAsync(documentName, tableId, folder: remoteFolder);
13+
14+
if (response == null)
15+
Console.WriteLine("DeleteTable(): Unexpected error!");
16+
else if (response.Code < 200 || response.Code > 299)
17+
Console.WriteLine("DeleteTable(): Failed to remove Table '{0}' from the document.", tableId);
18+
else
19+
{
20+
Console.WriteLine("DeleteTable(): Table '{0}' successfully deleted from the document '{1}.", tableId, documentName);
21+
await helper.DownloadFile(documentName, outputName, "del_table_");
22+
}
23+
}
24+
}
25+
}

Uses-Cases/Tables/GetTable.cs

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
using Aspose.Pdf.Cloud.Sdk.Model;
2+
3+
namespace Tables
4+
{
5+
public class GetTable
6+
{
7+
public static async Task Extract(TablesHelper helper, string documentName, string tableId, string remoteFolder)
8+
{
9+
await helper.UploadFile(documentName);
10+
11+
TableRecognizedResponse response = await helper.pdfApi.GetTableAsync(documentName, tableId, folder: remoteFolder);
12+
13+
if (response == null)
14+
Console.WriteLine("GetTable(): Unexpected error!");
15+
else if (response.Code < 200 || response.Code > 299)
16+
Console.WriteLine("GetTable(): Failed to receive Table from the document.");
17+
else if (response.Table == null)
18+
Console.WriteLine("GetTable(): Table '{0}' not found in the document '{1]'.", tableId, documentName);
19+
else
20+
{
21+
Console.WriteLine("GetTable(): Table '{0}' successfully received from the document '{1}.", tableId, documentName);
22+
Console.WriteLine(response.Table.ToString());
23+
}
24+
}
25+
}
26+
}

Uses-Cases/Tables/GetTables.cs

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
using Aspose.Pdf.Cloud.Sdk.Model;
2+
3+
namespace Tables
4+
{
5+
public class GetTables
6+
{
7+
public static async Task Extract(TablesHelper helper, string documentName, string remoteFolder)
8+
{
9+
await helper.UploadFile(documentName);
10+
11+
TablesRecognizedResponse response = await helper.pdfApi.GetDocumentTablesAsync(documentName, folder: remoteFolder);
12+
13+
if (response == null)
14+
Console.WriteLine("GetTables(): Unexpected error!");
15+
else if (response.Code < 200 || response.Code > 299)
16+
Console.WriteLine("GetTables(): Failed to receive Tables from the document.");
17+
else if (response.Tables == null || response.Tables.List == null || response.Tables.List.Count == 0)
18+
Console.WriteLine("GetTables(): Tables not found in the document '{0}'.", documentName);
19+
else
20+
{
21+
Console.WriteLine("GetTables(): Tables successfully received from the document '{0}.", documentName);
22+
foreach (var table in response.Tables.List)
23+
{
24+
Console.WriteLine(table.ToString());
25+
}
26+
}
27+
}
28+
}
29+
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
using Aspose.Pdf.Cloud.Sdk.Model;
2+
3+
namespace Tables
4+
{
5+
public class GetTablesOnPage
6+
{
7+
public static async Task Extract(TablesHelper helper, string documentName, int pageNumber, string remoteFolder)
8+
{
9+
await helper.UploadFile(documentName);
10+
11+
TablesRecognizedResponse response = await helper.pdfApi.GetPageTablesAsync(documentName, pageNumber, folder: remoteFolder);
12+
13+
if (response == null)
14+
Console.WriteLine("GetTablesOnPage(): Unexpected error!");
15+
else if (response.Code < 200 || response.Code > 299)
16+
Console.WriteLine("GetTablesOnPage(): Failed to receive Tables from the document.");
17+
else if (response.Tables == null || response.Tables.List == null || response.Tables.List.Count == 0)
18+
Console.WriteLine("GetTablesOnPage(): Tables not found on '{0}' page of the document '{1}'.", pageNumber, documentName);
19+
else
20+
{
21+
Console.WriteLine("GetTablesOnPage(): Tables successfully received from '{0}' page of the document '{1}.", pageNumber, documentName);
22+
foreach (var table in response.Tables.List)
23+
{
24+
Console.WriteLine(table.ToString());
25+
}
26+
}
27+
}
28+
}
29+
}

Uses-Cases/Tables/Program.cs

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
using Tables;
2+
3+
TablesHelper helper = new TablesHelper();
4+
ConfigParams config = helper.config;
5+
6+
await GetTables.Extract(helper, config.PDF_DOCUMENT, config.REMOTE_TEMP_FOLDER);
7+
8+
await GetTablesOnPage.Extract(helper, config.PDF_DOCUMENT, config.PAGE_NUMBER, config.REMOTE_TEMP_FOLDER);
9+
10+
await GetTable.Extract(helper, config.PDF_DOCUMENT, config.TABLE_ID, config.REMOTE_TEMP_FOLDER);
11+
12+
await AddTable.Append(helper, config.PDF_DOCUMENT, config.PAGE_NUMBER, config.PDF_OUTPUT, config.REMOTE_TEMP_FOLDER);
13+
14+
await DeleteTables.Remove(helper, config.PDF_DOCUMENT, config.PDF_OUTPUT, config.REMOTE_TEMP_FOLDER);
15+
16+
await DeleteTableOnPage.Remove(helper, config.PDF_DOCUMENT, config.PAGE_NUMBER, config.PDF_OUTPUT, config.REMOTE_TEMP_FOLDER);
17+
18+
await DeleteTable.Remove(helper, config.PDF_DOCUMENT, config.TABLE_ID, config.PDF_OUTPUT, config.REMOTE_TEMP_FOLDER);
19+
20+
await ReplaceTable.Modify(helper, config.PDF_DOCUMENT, config.TABLE_ID, config.PDF_OUTPUT, config.REMOTE_TEMP_FOLDER);

Uses-Cases/Tables/ReplaceTable.cs

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
using Aspose.Pdf.Cloud.Sdk.Model;
2+
3+
namespace Tables
4+
{
5+
public class ReplaceTable
6+
{
7+
public static async Task Modify(TablesHelper helper, string documentName, string tableId, string outputName, string remoteFolder)
8+
{
9+
await helper.UploadFile(documentName);
10+
11+
Table table = TableCreate.New();
12+
13+
AsposeResponse response = await helper.pdfApi.PutTableAsync(documentName, tableId, table, folder: remoteFolder);
14+
15+
if (response == null)
16+
Console.WriteLine("ReplaceTable(): Unexpected error!");
17+
else if (response.Code < 200 || response.Code > 299)
18+
Console.WriteLine("ReplaceTable(): Failed to replace Table in the document.");
19+
else
20+
{
21+
Console.WriteLine("ReplaceTable(): Table successfully replaced in the document '{0}.", documentName);
22+
await helper.DownloadFile(documentName, outputName, "replace_table_");
23+
}
24+
}
25+
}
26+
}

Uses-Cases/Tables/TableCreate.cs

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
using Aspose.Pdf.Cloud.Sdk.Model;
2+
3+
namespace Tables
4+
{
5+
public class TableCreate
6+
{
7+
public static Table New()
8+
{
9+
int num_of_cols = 5;
10+
int num_of_rows = 5;
11+
12+
TextState header_text_state = new TextState(
13+
Font: "Arial Bold",
14+
FontSize: 11,
15+
ForegroundColor: new Color(A: 255, R: 255, G: 255, B: 255),
16+
FontStyle: FontStyles.Bold);
17+
18+
TextState common_text_state = new TextState(
19+
Font: "Arial Bold",
20+
FontSize: 11,
21+
ForegroundColor: new Color(A: 255, R: 112, G: 112, B: 112),
22+
FontStyle: FontStyles.Regular);
23+
24+
string col_widths = string.Empty;
25+
for (int col_index = 0; col_index < num_of_cols; col_index++)
26+
{
27+
col_widths += " 70";
28+
}
29+
30+
List<Row> table_rows = new List<Row>();
31+
GraphInfo border_table_border = new GraphInfo(
32+
Color: new Color(A: 255, R: 0, G: 255, B: 0),
33+
LineWidth: 0.5);
34+
35+
for (int row_index = 0; row_index < num_of_rows; row_index++)
36+
{
37+
List<Cell> row_cells = new List<Cell>();
38+
39+
for (int col_index = 0; col_index < num_of_cols; col_index++)
40+
{
41+
Cell cell = new Cell(DefaultCellTextState: common_text_state, Paragraphs: new List<TextRect>());
42+
if (row_index == 0)
43+
{ // header cells
44+
cell.BackgroundColor = new Color(A: 255, R: 128, G: 128, B: 128);
45+
cell.DefaultCellTextState = header_text_state;
46+
}
47+
else
48+
{
49+
cell.BackgroundColor = new Color(A: 255, R: 255, G: 255, B: 255);
50+
cell.DefaultCellTextState = common_text_state;
51+
};
52+
53+
TextRect text_rect = new TextRect();
54+
if (row_index == 0)
55+
{
56+
text_rect.Text = "header #" + col_index.ToString();
57+
}
58+
else
59+
text_rect.Text = string.Format("value '{0}', '{1}'", row_index, col_index);
60+
61+
cell.Paragraphs.Add(text_rect);
62+
63+
row_cells.Add(cell);
64+
}
65+
66+
Row row = new Row(Cells: row_cells);
67+
table_rows.Add(row);
68+
}
69+
Table table = new Table(Left: 150, Top: 250, ColumnWidths: col_widths, Rows: table_rows);
70+
table.DefaultCellBorder = new BorderInfo(
71+
Top: border_table_border,
72+
Right: border_table_border,
73+
Bottom: border_table_border,
74+
Left: border_table_border,
75+
RoundedBorderRadius: 2);
76+
77+
return table;
78+
}
79+
}
80+
}

0 commit comments

Comments
 (0)