PDF SDK Documentation

Comprehensive Guide for Developers: Features, Integration, and API Reference

Loading...
Searching...
No Matches
convert.h
Go to the documentation of this file.
1#pragma once
2
7
8#include <filesystem>
9
10#include <pdfsdk/cxx/core.h>
11
19
20namespace PDF {
21
30
45inline void ConvertPdfToWord(const PDF::Document& input,
46 bool ignoreHeadersAndFooters,
47 const std::filesystem::path& outputFile,
48 const std::vector<size_t>& pageIndexes = {},
49 PDF::ProgressMonitor* progress = nullptr) {
50 PDFConvertToDocxParams params = {};
51 auto outputFileStr = outputFile.wstring();
52 params.outputFile = outputFileStr.c_str();
53 params.ignoreHeadersAndFooters = ignoreHeadersAndFooters;
54 PDPageRange pages = {pageIndexes.data(), pageIndexes.size()};
55 const PDPageRange* pagesPtr = pageIndexes.empty() ? nullptr : &pages;
56 const PDProgressMonitor* progressMonitor = progress ? progress->monitor() : nullptr;
57 void* progressData = progress ? progress->userdata() : nullptr;
58 PDF_CHECK_SUCCESS_X(PDFConvertToDocx(input.get(), pagesPtr, progressMonitor, progressData, &params));
59}
60
76inline void ConvertPdfToExcel(const PDF::Document& input,
77 ConvertPdfToExcelType convertType,
78 bool keepTablesOnly,
79 const std::filesystem::path& outputFile,
80 const std::vector<size_t>& pageIndexes = {},
81 PDF::ProgressMonitor* progress = nullptr) {
82 PDFConvertToXlsxParams params = {};
83 auto outputFileStr = outputFile.wstring();
84 params.outputFile = outputFileStr.c_str();
85 params.convertType = static_cast<PDFConvertToXlsxType>(convertType);
86 params.keepTablesOnly = keepTablesOnly;
87 PDPageRange pages = {pageIndexes.data(), pageIndexes.size()};
88 const PDPageRange* pagesPtr = pageIndexes.empty() ? nullptr : &pages;
89 const PDProgressMonitor* progressMonitor = progress ? progress->monitor() : nullptr;
90 void* progressData = progress ? progress->userdata() : nullptr;
91 PDF_CHECK_SUCCESS_X(PDFConvertToXlsx(input.get(), pagesPtr, progressMonitor, progressData, &params));
92}
93
104inline void ConvertPdfToPowerPoint(const PDF::Document& input,
105 const std::filesystem::path& outputFile,
106 const std::vector<size_t>& pageIndexes = {},
107 PDF::ProgressMonitor* progress = nullptr) {
108 PDFConvertToPptxParams params = {};
109 auto outputFileStr = outputFile.wstring();
110 params.outputFile = outputFileStr.c_str();
111 PDPageRange pages = {pageIndexes.data(), pageIndexes.size()};
112 const PDPageRange* pagesPtr = pageIndexes.empty() ? nullptr : &pages;
113 const PDProgressMonitor* progressMonitor = progress ? progress->monitor() : nullptr;
114 void* progressData = progress ? progress->userdata() : nullptr;
115 PDF_CHECK_SUCCESS_X(PDFConvertToPptx(input.get(), pagesPtr, progressMonitor, progressData, &params));
116}
117
128inline void ConvertPdfToHtml(const PDF::Document& input,
129 const std::filesystem::path& outputFolder,
130 const std::vector<size_t>& pageIndexes = {},
131 PDF::ProgressMonitor* progress = nullptr) {
132#ifdef _WIN32
133 PDFConvertToHtmlParams params = {};
134 auto outputFolderStr = outputFolder.wstring();
135 params.outputFolder = outputFolderStr.c_str();
136 params.useHTMExtension = true;
137 PDPageRange pages = {pageIndexes.data(), pageIndexes.size()};
138 const PDPageRange* pagesPtr = pageIndexes.empty() ? nullptr : &pages;
139 const PDProgressMonitor* progressMonitor = progress ? progress->monitor() : nullptr;
140 void* progressData = progress ? progress->userdata() : nullptr;
141 PDF_CHECK_SUCCESS_X(PDFConvertToHtml(input.get(), pagesPtr, progressMonitor, progressData, &params));
142#else
143 (void)input;
144 (void)outputFolder;
145 (void)pageIndexes;
146 (void)progress;
147 PDF_THROW(kPDErrInternalError, "PDF to HTML converter is temporary unavailable on this platform");
148#endif
149}
150
161inline void ConvertPdfToRtf(const PDF::Document& input,
162 const std::filesystem::path& outputFile,
163 const std::vector<size_t>& pageIndexes = {},
164 PDF::ProgressMonitor* progress = nullptr) {
165#ifdef _WIN32
166 PDFConvertToRtfParams params = {};
167 auto outputFileStr = outputFile.wstring();
168 params.outputFile = outputFileStr.c_str();
169 params.tableRecognize = true;
170 PDPageRange pages = {pageIndexes.data(), pageIndexes.size()};
171 const PDPageRange* pagesPtr = pageIndexes.empty() ? nullptr : &pages;
172 const PDProgressMonitor* progressMonitor = progress ? progress->monitor() : nullptr;
173 void* progressData = progress ? progress->userdata() : nullptr;
174 PDF_CHECK_SUCCESS_X(PDFConvertToRtf(input.get(), pagesPtr, progressMonitor, progressData, &params));
175#else
176 (void)input;
177 (void)outputFile;
178 (void)pageIndexes;
179 (void)progress;
180 PDF_THROW(kPDErrInternalError, "PDF to RTF converters is temporary unavailable on this platform");
181#endif
182}
183
196inline void ConvertPdfToText(const PDF::Document& input,
197 const std::wstring& pageDivider,
198 bool convertCroppedText,
199 const std::filesystem::path& outputFile,
200 const std::vector<size_t>& pageIndexes = {},
201 PDF::ProgressMonitor* progress = nullptr) {
202 PDFConvertToTextParams params = {};
203 auto outputFileStr = outputFile.wstring();
204 params.outputFile = outputFileStr.c_str();
205 params.convertCroppedText = convertCroppedText;
206 params.dividerString = pageDivider.c_str();
207 PDPageRange pages = {pageIndexes.data(), pageIndexes.size()};
208 const PDPageRange* pagesPtr = pageIndexes.empty() ? nullptr : &pages;
209 const PDProgressMonitor* progressMonitor = progress ? progress->monitor() : nullptr;
210 void* progressData = progress ? progress->userdata() : nullptr;
211 PDF_CHECK_SUCCESS_X(PDFConvertToText(input.get(), pagesPtr, progressMonitor, progressData, &params));
212}
213
224inline void ConvertPdfToJson(const PDF::Document& input,
225 const std::filesystem::path& outputFile,
226 const std::vector<size_t>& pageIndexes = {},
227 PDF::ProgressMonitor* progress = nullptr) {
228 PDFConvertToJsonParams params = {};
229 auto outputFileStr = outputFile.wstring();
230 params.outputFile = outputFileStr.c_str();
231 PDPageRange pages = {pageIndexes.data(), pageIndexes.size()};
232 const PDPageRange* pagesPtr = pageIndexes.empty() ? nullptr : &pages;
233 const PDProgressMonitor* progressMonitor = progress ? progress->monitor() : nullptr;
234 void* progressData = progress ? progress->userdata() : nullptr;
235 PDF_CHECK_SUCCESS_X(PDFConvertToJson(input.get(), pagesPtr, progressMonitor, progressData, &params));
236}
237
238}
Represents a PDF document.
Definition document.h:27
Progress monitor for tracking the progress of an operation.
Definition progress_monitor.h:14
void ConvertPdfToPowerPoint(const PDF::Document &input, const std::filesystem::path &outputFile, const std::vector< size_t > &pageIndexes={}, PDF::ProgressMonitor *progress=nullptr)
Coverts a PDF file (or a part of it) into a MS PowerPoint Document format (.pptx).
Definition convert.h:104
void ConvertPdfToHtml(const PDF::Document &input, const std::filesystem::path &outputFolder, const std::vector< size_t > &pageIndexes={}, PDF::ProgressMonitor *progress=nullptr)
Coverts a PDF file (or a part of it) into a HTML Document format (.html).
Definition convert.h:128
void ConvertPdfToExcel(const PDF::Document &input, ConvertPdfToExcelType convertType, bool keepTablesOnly, const std::filesystem::path &outputFile, const std::vector< size_t > &pageIndexes={}, PDF::ProgressMonitor *progress=nullptr)
Coverts a PDF file (or a part of it) into a MS Excel Document format (.xlsx).
Definition convert.h:76
ConvertPdfToExcelType
The type of conversion to perform when converting a PDF document to Excel format.
Definition convert.h:25
@ TablePerSheet
Definition convert.h:26
@ PagePerSheet
Definition convert.h:27
@ DocumentPerSheet
Definition convert.h:28
void ConvertPdfToJson(const PDF::Document &input, const std::filesystem::path &outputFile, const std::vector< size_t > &pageIndexes={}, PDF::ProgressMonitor *progress=nullptr)
Coverts a PDF file (or a part of it) into a JSON format.
Definition convert.h:224
void ConvertPdfToText(const PDF::Document &input, const std::wstring &pageDivider, bool convertCroppedText, const std::filesystem::path &outputFile, const std::vector< size_t > &pageIndexes={}, PDF::ProgressMonitor *progress=nullptr)
Coverts a PDF file (or a part of it) into plain text format.
Definition convert.h:196
void ConvertPdfToRtf(const PDF::Document &input, const std::filesystem::path &outputFile, const std::vector< size_t > &pageIndexes={}, PDF::ProgressMonitor *progress=nullptr)
Coverts a PDF file (or a part of it) into a Rich Text Document format (.rtf).
Definition convert.h:161
void ConvertPdfToWord(const PDF::Document &input, bool ignoreHeadersAndFooters, const std::filesystem::path &outputFile, const std::vector< size_t > &pageIndexes={}, PDF::ProgressMonitor *progress=nullptr)
Coverts a PDF file (or a part of it) into a MS Word Document format (.docx).
Definition convert.h:45
@ kPDErrInternalError
Internal error.
Definition errors.h:23
PDF to DOCX conversion API.
PDErrCode PDFConvertToDocx(PDDoc source, const PDPageRange *pageRange, const PDProgressMonitor *progress, void *progressData, const PDFConvertToDocxParams *params)
A function to covert a PDF file (or a part of it) into a MS Word Document format (....
PDF to HTML conversion API.
PDF to JSON conversion API.
PDF to PPTX conversion API.
PDFSDK_IMPORT_ PDErrCode PDFSDK_CALLCONV PDFConvertToPptx(PDDoc source, const PDPageRange *pageRange, const PDProgressMonitor *progress, void *progressData, const PDFConvertToPptxParams *params)
A function to covert a PDF file (or a part of it) into a MS PowerPoint Document format (....
PDF to RTF conversion API.
PDF to TXT conversion API.
PDF to XLSX conversion API.
PDFConvertToXlsxType
Defines how the content is organized in the resulting Excel file.
Definition pdf2xlsx.h:24
PDFSDK_IMPORT_ PDErrCode PDFSDK_CALLCONV PDFConvertToXlsx(PDDoc source, const PDPageRange *pageRange, const PDProgressMonitor *progress, void *progressData, const PDFConvertToXlsxParams *params)
A function to covert a PDF file (or a part of it) into a MS Excel Document format (....
Contains conversion-related parameters such as the output directory and file name,...
Definition pdf2docx.h:23
bool ignoreHeadersAndFooters
Definition pdf2docx.h:29
const wchar_t * outputFile
Definition pdf2docx.h:24
Definition pdf2html.h:19
Definition pdf2json.h:19
Contains conversion-related parameters such as the output file, and a flag related table recognition.
Definition pdf2pptx.h:23
const wchar_t * outputFile
Definition pdf2pptx.h:24
Definition pdf2rtf.h:19
Definition pdf2text.h:19
Contains conversion-related parameters such as the output file, the Excel sheet makeup,...
Definition pdf2xlsx.h:35
bool keepTablesOnly
Definition pdf2xlsx.h:39
const wchar_t * outputFile
Definition pdf2xlsx.h:36
PDFConvertToXlsxType convertType
Definition pdf2xlsx.h:38