Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 8c2e7f9

Browse files
committed
Updated samples, modified ConvertToHtmlByPages example to create valid html page as output
1 parent 5e3c78c commit 8c2e7f9

File tree

9 files changed

+36
-60
lines changed

9 files changed

+36
-60
lines changed

‎PdfixSamples.cs‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ public static void Run(String rootPath)
8181
flags = PdfToHtml.kHtmlNoExternalCSS | PdfToHtml.kHtmlNoExternalJS | PdfToHtml.kHtmlNoExternalIMG | PdfToHtml.kHtmlNoExternalFONT
8282
});
8383

84+
Console.WriteLine("ConvertToHtmlByPages Sample");
8485
ConvertToHtmlByPages.Run(inputPath + "test.pdf",
8586
configPath,
8687
new PdfHtmlParams()

‎src/ConvertToHtmlByPages.cs‎

Lines changed: 17 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -44,38 +44,36 @@ PdfHtmlParams htmlParams // html conversion params
4444
stm.Destroy();
4545
}
4646

47+
//htmlParams.type = PdfHtmlType.kPdfHtmlResponsive;
4748
htmlParams.flags |= PdfToHtml.kHtmlNoExternalCSS | PdfToHtml.kHtmlNoExternalJS |
4849
PdfToHtml.kHtmlNoExternalIMG | PdfToHtml.kHtmlNoExternalFONT;
49-
htmlParams.image_params.format = PdfImageFormat.kImageFormatJpg;
50+
//htmlParams.image_params.format = PdfImageFormat.kImageFormatJpg;
51+
//htmlParams.image_params.quality = 80;
5052

5153
PdfHtmlDoc htmlDoc = pdfToHtml.OpenHtmlDoc(doc);
5254
if (htmlDoc == null)
5355
throw new Exception(pdfix.GetError());
5456

55-
// save common js and css for all pages
56-
PsStream docCss = pdfix.CreateMemStream();
57-
if (!pdfToHtml.SaveCSS(docCss))
58-
throw new Exception(pdfix.GetError());
59-
docCss.Destroy();
60-
61-
PsStream docJs = pdfix.CreateMemStream();
62-
if (!pdfToHtml.SaveJavaScript(docJs))
63-
throw new Exception(pdfix.GetError());
64-
docJs.Destroy();
65-
66-
PsStream docStm = pdfix.CreateMemStream();
67-
if (!htmlDoc.SaveDocHtml(docStm, htmlParams, null, IntPtr.Zero))
68-
throw new Exception(pdfix.GetError());
69-
docStm.Destroy();
57+
var docStm = pdfix.CreateFileStream(Utils.GetAbsolutePath("output") + "/pages.html", PsFileMode.kPsTruncate);
58+
59+
// prepare head
60+
docStm.Write(0, System.Text.Encoding.Default.GetBytes("<html>\n<head>\n<title>PDFix sample</title>\n</head>\n<body>\n"));
61+
docStm.Write(docStm.GetSize(), System.Text.Encoding.Default.GetBytes("<script>\n"));
62+
pdfToHtml.SaveJavaScript(docStm);
63+
docStm.Write(docStm.GetSize(), System.Text.Encoding.Default.GetBytes("\n</script>\n<style>\n"));
64+
pdfToHtml.SaveCSS(docStm);
65+
docStm.Write(docStm.GetSize(), System.Text.Encoding.Default.GetBytes("\n</style>\n"));
7066

67+
// convert pages
7168
for (int i = 0; i < doc.GetNumPages(); i++)
7269
{
73-
PsStream pageStm = pdfix.CreateMemStream();
74-
if (!htmlDoc.SavePageHtml(pageStm, htmlParams, i, null, IntPtr.Zero))
70+
if (!htmlDoc.SavePageHtml(docStm, htmlParams, i, null, IntPtr.Zero))
7571
throw new Exception(pdfix.GetError());
76-
pageStm.Destroy();
7772
}
7873

74+
docStm.Write(docStm.GetSize(), System.Text.Encoding.Default.GetBytes("</body>\n</html>"));
75+
76+
docStm.Destroy();
7977
htmlDoc.Close();
8078
doc.Close();
8179
pdfToHtml.Destroy();

‎src/TagAnnotation.cs‎

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ private static bool GetStructElementBBox(PdsStructElement struct_elem, ref PdfRe
5555
else if (struct_elem.GetKidType(i) == PdfStructElementType.kPdsStructKidElement)
5656
{
5757
PdsObject kid_obj = struct_elem.GetKidObject(i);
58-
PdsStructElement kid_elem = struct_elem.GetStructTree().AcquireStructElement(kid_obj);
58+
PdsStructElement kid_elem = struct_elem.GetStructTree().GetStructElement(kid_obj);
5959
GetStructElementBBox(kid_elem, ref bbox);
6060
}
6161
}
@@ -74,7 +74,7 @@ private static PdsStructElement GetFirstParagraph(PdsStructElement struct_elem)
7474
if (struct_elem.GetKidType(i) == PdfStructElementType.kPdsStructKidElement)
7575
{
7676
PdsObject kid_obj = struct_elem.GetKidObject(i);
77-
PdsStructElement kid_elem = struct_elem.GetStructTree().AcquireStructElement(kid_obj);
77+
PdsStructElement kid_elem = struct_elem.GetStructTree().GetStructElement(kid_obj);
7878
if (kid_elem == null)
7979
throw new Exception(pdfix.GetErrorType().ToString());
8080

@@ -85,11 +85,9 @@ private static PdsStructElement GetFirstParagraph(PdsStructElement struct_elem)
8585
var paragraph = GetFirstParagraph(kid_elem);
8686
if (paragraph != null)
8787
{
88-
kid_elem.Release();
8988
return paragraph;
9089
}
9190

92-
kid_elem.Release();
9391
}
9492
}
9593
return null;
@@ -100,14 +98,12 @@ private static PdsStructElement GetFirstParagraph(PdsStructTree struct_tree)
10098
for (int i = 0; i < struct_tree.GetNumKids(); i++)
10199
{
102100
PdsObject kid_obj = struct_tree.GetKidObject(i);
103-
PdsStructElement kid_elem = struct_tree.AcquireStructElement(kid_obj);
101+
PdsStructElement kid_elem = struct_tree.GetStructElement(kid_obj);
104102
var paragraph = GetFirstParagraph(kid_elem);
105103
if (paragraph != null)
106104
{
107-
kid_elem.Release();
108105
return paragraph;
109106
}
110-
kid_elem.Release();
111107
}
112108
return null;
113109
}

‎src/TagAsArtifact.cs‎

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ internal static void RemoveParagraph(PdsStructElement struct_elem)
4949
if (struct_elem.GetKidType(i) == PdfStructElementType.kPdsStructKidElement)
5050
{
5151
PdsObject kid_obj = struct_elem.GetKidObject(i);
52-
PdsStructElement kid_elem = struct_elem.GetStructTree().AcquireStructElement(kid_obj);
52+
PdsStructElement kid_elem = struct_elem.GetStructTree().GetStructElement(kid_obj);
5353

5454
string type = kid_elem.GetType_(true);
5555
if (type == "P")
@@ -81,7 +81,6 @@ internal static void RemoveParagraph(PdsStructElement struct_elem)
8181
if (kid_elem.GetNumKids() == 0)
8282
struct_elem.RemoveKid(i);
8383

84-
kid_elem.Release();
8584
}
8685
// remove only 2 paragraphs in this sample
8786
if (++count >= 2) break;
@@ -118,9 +117,8 @@ String savePath // dest PDF document
118117
for (int i = 0; i < struct_tree.GetNumKids(); i++)
119118
{
120119
PdsObject kid_obj = struct_tree.GetKidObject(i);
121-
PdsStructElement kid_elem = struct_tree.AcquireStructElement(kid_obj);
120+
PdsStructElement kid_elem = struct_tree.GetStructElement(kid_obj);
122121
RemoveParagraph(kid_elem);
123-
kid_elem.Release();
124122
}
125123

126124
// the struct tree was updates, save page content on each page to apply changes

‎src/TagEditImageAltText.cs‎

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ private static PdsStructElement GetFirstFigure(PdsStructElement struct_elem)
2424
if (struct_elem.GetKidType(i) == PdfStructElementType.kPdsStructKidElement)
2525
{
2626
PdsObject kid_obj = struct_elem.GetKidObject(i);
27-
PdsStructElement kid_elem = struct_elem.GetStructTree().AcquireStructElement(kid_obj);
27+
PdsStructElement kid_elem = struct_elem.GetStructTree().GetStructElement(kid_obj);
2828
if (kid_elem == null)
2929
throw new Exception(pdfix.GetErrorType().ToString());
3030

@@ -35,11 +35,9 @@ private static PdsStructElement GetFirstFigure(PdsStructElement struct_elem)
3535
var table = GetFirstFigure(kid_elem);
3636
if (table != null)
3737
{
38-
kid_elem.Release();
3938
return table;
4039
}
4140

42-
kid_elem.Release();
4341
}
4442
}
4543
return null;
@@ -50,14 +48,12 @@ private static PdsStructElement GetFirstFigure(PdsStructTree struct_tree)
5048
for (int i = 0; i < struct_tree.GetNumKids(); i++)
5149
{
5250
PdsObject kid_obj = struct_tree.GetKidObject(i);
53-
PdsStructElement kid_elem = struct_tree.AcquireStructElement(kid_obj);
51+
PdsStructElement kid_elem = struct_tree.GetStructElement(kid_obj);
5452
var paragraph = GetFirstFigure(kid_elem);
5553
if (paragraph != null)
5654
{
57-
kid_elem.Release();
5855
return paragraph;
5956
}
60-
kid_elem.Release();
6157
}
6258
return null;
6359
}

‎src/TagHeadings.cs‎

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -107,9 +107,8 @@ static void TagParagraphAsHeading(PdsStructElement struct_elem)
107107
if (struct_elem.GetKidType(i) == PdfStructElementType.kPdsStructKidElement)
108108
{
109109
PdsObject kid_obj = struct_elem.GetKidObject(i);
110-
PdsStructElement kid_elem = struct_elem.GetStructTree().AcquireStructElement(kid_obj);
110+
PdsStructElement kid_elem = struct_elem.GetStructTree().GetStructElement(kid_obj);
111111
TagParagraphAsHeading(kid_elem);
112-
kid_elem.Release();
113112
}
114113
}
115114
}
@@ -145,9 +144,8 @@ String savePath // dest PDF document
145144
for (int i = 0; i < struct_tree.GetNumKids(); i++)
146145
{
147146
PdsObject kid_obj = struct_tree.GetKidObject(i);
148-
PdsStructElement kid_elem = struct_tree.AcquireStructElement(kid_obj);
147+
PdsStructElement kid_elem = struct_tree.GetStructElement(kid_obj);
149148
TagParagraphAsHeading(kid_elem);
150-
kid_elem.Release();
151149
}
152150

153151
if (!doc.Save(savePath, Pdfix.kSaveFull))

‎src/TagTableAsFigure.cs‎

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ private static bool GetStructElementBBox(PdsStructElement struct_elem, ref PdfRe
5555
else if (struct_elem.GetKidType(i) == PdfStructElementType.kPdsStructKidElement)
5656
{
5757
PdsObject kid_obj = struct_elem.GetKidObject(i);
58-
PdsStructElement kid_elem = struct_elem.GetStructTree().AcquireStructElement(kid_obj);
58+
PdsStructElement kid_elem = struct_elem.GetStructTree().GetStructElement(kid_obj);
5959
GetStructElementBBox(kid_elem, ref bbox);
6060
}
6161
}
@@ -74,7 +74,7 @@ private static PdsStructElement GetFirstTable(PdsStructElement struct_elem)
7474
if (struct_elem.GetKidType(i) == PdfStructElementType.kPdsStructKidElement)
7575
{
7676
PdsObject kid_obj = struct_elem.GetKidObject(i);
77-
PdsStructElement kid_elem = struct_elem.GetStructTree().AcquireStructElement(kid_obj);
77+
PdsStructElement kid_elem = struct_elem.GetStructTree().GetStructElement(kid_obj);
7878
if (kid_elem == null)
7979
throw new Exception(pdfix.GetErrorType().ToString());
8080

@@ -85,11 +85,9 @@ private static PdsStructElement GetFirstTable(PdsStructElement struct_elem)
8585
var table = GetFirstTable(kid_elem);
8686
if (table != null)
8787
{
88-
kid_elem.Release();
8988
return table;
9089
}
9190

92-
kid_elem.Release();
9391
}
9492
}
9593
return null;
@@ -100,14 +98,12 @@ private static PdsStructElement GetFirstTable(PdsStructTree struct_tree)
10098
for (int i = 0; i < struct_tree.GetNumKids(); i++)
10199
{
102100
PdsObject kid_obj = struct_tree.GetKidObject(i);
103-
PdsStructElement kid_elem = struct_tree.AcquireStructElement(kid_obj);
101+
PdsStructElement kid_elem = struct_tree.GetStructElement(kid_obj);
104102
var paragraph = GetFirstTable(kid_elem);
105103
if (paragraph != null)
106104
{
107-
kid_elem.Release();
108105
return paragraph;
109106
}
110-
kid_elem.Release();
111107
}
112108
return null;
113109
}

‎src/TagsReadStructTree.cs‎

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -64,11 +64,10 @@ static List<PdfRect> GetStructElementBboxes(PdfDoc doc, PdsStructElement struct_
6464
{
6565
case PdfStructElementType.kPdsStructKidElement:
6666
{
67-
var kid_struct_elem = struct_elem.GetStructTree().AcquireStructElement(kid_obj);
67+
var kid_struct_elem = struct_elem.GetStructTree().GetStructElement(kid_obj);
6868
if (kid_struct_elem == null)
6969
throw new Exception(pdfix.GetErrorType().ToString());
7070
bboxes.AddRange(GetStructElementBboxes(doc, kid_struct_elem));
71-
kid_struct_elem.Release();
7271
}
7372
break;
7473
case PdfStructElementType.kPdsStructKidObject:
@@ -135,11 +134,10 @@ static void ProcessStructElement(PdfDoc doc, PdsStructElement struct_elem, strin
135134
{
136135
case PdfStructElementType.kPdsStructKidElement:
137136
{
138-
var kid_struct_elem = struct_elem.GetStructTree().AcquireStructElement(kid_obj);
137+
var kid_struct_elem = struct_elem.GetStructTree().GetStructElement(kid_obj);
139138
if (kid_struct_elem == null)
140139
throw new Exception(pdfix.GetErrorType().ToString());
141140
ProcessStructElement(doc, kid_struct_elem, indent);
142-
kid_struct_elem.Release();
143141
}
144142
break;
145143
case PdfStructElementType.kPdsStructKidObject:
@@ -191,9 +189,8 @@ String openPath // source PDF document
191189
for (var i = 0; i < struct_tree.GetNumKids(); i++)
192190
{
193191
PdsObject kid_object = struct_tree.GetKidObject(i);
194-
PdsStructElement struct_elem = struct_tree.AcquireStructElement(kid_object);
192+
PdsStructElement struct_elem = struct_tree.GetStructElement(kid_object);
195193
ProcessStructElement(doc, struct_elem, "");
196-
struct_elem.Release();
197194
}
198195
}
199196

‎src/TagsReadingOrder.cs‎

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ private static PdsStructElement GetFirstParagraph(PdsStructElement struct_elem)
2323
if (struct_elem.GetKidType(i) == PdfStructElementType.kPdsStructKidElement)
2424
{
2525
PdsObject kid_obj = struct_elem.GetKidObject(i);
26-
PdsStructElement kid_elem = struct_elem.GetStructTree().AcquireStructElement(kid_obj);
26+
PdsStructElement kid_elem = struct_elem.GetStructTree().GetStructElement(kid_obj);
2727
if (kid_elem == null)
2828
throw new Exception(pdfix.GetErrorType().ToString());
2929

@@ -34,11 +34,9 @@ private static PdsStructElement GetFirstParagraph(PdsStructElement struct_elem)
3434
var paragraph = GetFirstParagraph(kid_elem);
3535
if (paragraph != null)
3636
{
37-
kid_elem.Release();
3837
return paragraph;
3938
}
4039

41-
kid_elem.Release();
4240
}
4341
}
4442
return null;
@@ -49,14 +47,12 @@ private static PdsStructElement GetFirstParagraph(PdsStructTree struct_tree)
4947
for (int i = 0; i < struct_tree.GetNumKids(); i++)
5048
{
5149
PdsObject kid_obj = struct_tree.GetKidObject(i);
52-
PdsStructElement kid_elem = struct_tree.AcquireStructElement(kid_obj);
50+
PdsStructElement kid_elem = struct_tree.GetStructElement(kid_obj);
5351
var paragraph = GetFirstParagraph(kid_elem);
5452
if (paragraph != null)
5553
{
56-
kid_elem.Release();
5754
return paragraph;
5855
}
59-
kid_elem.Release();
6056
}
6157
return null;
6258
}
@@ -92,7 +88,7 @@ String savePath // dest PDF document
9288
throw new Exception("No table found.");
9389

9490
// move paragraph to the back of it's parent
95-
PdsStructElement parent = struct_tree.AcquireStructElement(paragraph.GetParentObject());
91+
PdsStructElement parent = struct_tree.GetStructElement(paragraph.GetParentObject());
9692
if (parent == null)
9793
throw new Exception(pdfix.GetErrorType().ToString());
9894

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /