PDF SDK Documentation

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

Loading...
Searching...
No Matches
text_edit.h
Go to the documentation of this file.
1// Copyright (c) 2009-2025 Avanquest Software. All rights reserved.
2
3#ifndef PDFSDK_TEXT_EDIT_H_INCLUDED_
4#define PDFSDK_TEXT_EDIT_H_INCLUDED_
5
11#include <pdfsdk/core.h>
12#include <pdfsdk/export.h>
13
14#ifdef PDF_TEXTEDIT_EXPORTS
15#define PDF_TEXTEDIT_API PDFSDK_EXPORT_
16#else
17#define PDF_TEXTEDIT_API PDFSDK_IMPORT_
18#endif
19
20#ifdef __cplusplus
21extern "C" {
22#endif
23
24typedef struct PDTLayoutRec_* PDTLayout;
25
26typedef struct PDTTextBlockRec_* PDTTextBlock;
27
28typedef struct PDTCharIteratorRec_* PDTCharIterator;
29
41
42typedef struct {
43 PDFontInfo info;
44 float size;
45 PDColorValue color;
46 PDTEscapement escapement;
47 float charSpacing;
48 float horzScaling;
49 PDColorValue highlight;
50 PDColorValue strikeout;
51 PDColorValue underline;
53
67
68typedef struct {
69 PDTAlignment alignment;
70 float lineSpacing;
71 float paraSpacing;
72 float firstLineIndent;
73 float indent;
75
89
90typedef struct {
92 UnicodeChar symbol;
93 PDFontInfo bulletFont;
95
108
109typedef struct {
110 PDTListItemType type;
111 int level;
112 PDTListLevelStyle style;
113 PDTFontAttrs fontAttrs;
115
116typedef struct PDTTextCommandRec_* PDTTextCommand;
117
118/* Text Layout */
119
120PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDPageBuildTextLayout(PDPage page, PDTLayout* pLayout);
121PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDEFormXObjectBuildTextLayout(PDDoc doc,
122 PDEXObject form,
123 PDTLayout* pLayout);
124
125PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTLayoutSetUserName(PDTLayout layout, const wchar_t* chars, size_t numChars);
126
127PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTLayoutNewTextBlock(PDTLayout layout,
128 size_t index,
129 PDTTextBlock* pBlock);
130PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTLayoutInsertTextBlock(PDTLayout layout,
131 size_t index,
132 PDTTextBlock block);
133PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTLayoutRemoveTextBlock(PDTLayout layout, size_t index);
134PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTLayoutGetNumTextBlocks(PDTLayout layout, size_t* pNumBlocks);
135PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTLayoutGetTextBlock(PDTLayout layout,
136 size_t index,
137 PDTTextBlock* pBlock);
138PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTLayoutGetTextBlockIndex(PDTLayout layout,
139 PDTTextBlock block,
140 size_t* pIndex);
141
142/* Text Block */
143PDF_TEXTEDIT_API bool PDFSDK_CALLCONV PDTTextBlockEqual(PDTTextBlock a, PDTTextBlock b);
144PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTTextBlockGetPosition(PDTTextBlock block, PDPointF* pPos);
145PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTTextBlockGetSize(PDTTextBlock block, PDSizeF* pSize);
146PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTTextBlockGetRotate(PDTTextBlock block, float* pRotate);
147PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTTextBlockIsReflected(PDTTextBlock block, bool* pReflected);
148PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTTextBlockGetBBox(PDTTextBlock block, PDRectF* pBBox);
149PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTTextBlockGetCharBegin(PDTLayout layout,
150 PDTTextBlock block,
151 PDTCharIterator*);
152PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTTextBlockGetCharEnd(PDTLayout layout,
153 PDTTextBlock block,
154 PDTCharIterator*);
155PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTTextBlockCreateTextElement(PDTTextBlock block,
156 PDEElement* pText);
157PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTTextBlockIsExplicitWidth(PDTTextBlock block, bool* pValue);
158PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTTextBlockSetExplicitWidth(PDTTextBlock block, bool value);
159
160/* Char Iterator */
161PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCharIteratorAtBeginPage(PDTLayout layout, PDTCharIterator*);
162PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCharIteratorAtEndPage(PDTLayout layout, PDTCharIterator*);
163PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCharIteratorAtPoint(PDTLayout layout,
164 const PDPointF*,
165 PDTCharIterator*);
166PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCharIteratorForItem(PDTLayout layout,
167 PDETextItem,
168 size_t index,
169 PDTCharIterator*);
170PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCharIteratorForItemAtPoint(PDTLayout layout,
171 PDETextItem,
172 const PDPointF*,
173 PDTCharIterator*);
174PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCharIteratorGetBlockBegin(PDTCharIterator, PDTCharIterator*);
175
176/* returns an iterator to the last char in block, usually space */
177PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCharIteratorGetBlockEnd(PDTCharIterator, PDTCharIterator*);
178
179/* returns an iterator to the first char in paragraph */
180PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCharIteratorGetParaBegin(PDTCharIterator, PDTCharIterator*);
181
182/* returns an iterator to the last char in paragraph, usually space */
183PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCharIteratorGetParaEnd(PDTCharIterator, PDTCharIterator*);
184
185/* returns an iterator to the first char in line */
186PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCharIteratorGetLineBegin(PDTCharIterator, PDTCharIterator*);
187
188/* returns an iterator to the last char in line, usually space */
189PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCharIteratorGetLineEnd(PDTCharIterator, PDTCharIterator*);
190
191/* returns an iterator to the first char in word */
192PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCharIteratorGetWordBegin(PDTCharIterator, PDTCharIterator*);
193
194/* returns an iterator to the last char in word, usually space */
195PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCharIteratorGetWordEnd(PDTCharIterator, PDTCharIterator*);
196
197/* returns an iterator to the first char in span */
198PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCharIteratorGetSpanBegin(PDTCharIterator, PDTCharIterator*);
199
200/* returns an iterator to the first char in next span or `pageend` */
201PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCharIteratorGetSpanEnd(PDTCharIterator, PDTCharIterator*);
202
203PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCharIteratorGetAbove(PDTCharIterator, PDTCharIterator*);
204PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCharIteratorGetAboveAtPage(PDTCharIterator,
205 PDTLayout layout,
206 PDTCharIterator*);
207PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCharIteratorGetBelow(PDTCharIterator, PDTCharIterator*);
208PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCharIteratorGetBelowAtPage(PDTCharIterator,
209 PDTLayout layout,
210 PDTCharIterator*);
211PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCharIteratorCopy(PDTCharIterator, PDTCharIterator* pCopy);
212PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCharIteratorIncrement(PDTCharIterator);
213PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCharIteratorDecrement(PDTCharIterator);
214PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCharIteratorAdvance(PDTCharIterator, int n);
215PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCharIteratorDistance(PDTCharIterator,
216 PDTCharIterator,
217 int* pDist);
218PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCharIteratorLess(PDTCharIterator, PDTCharIterator, bool*);
219PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCharIteratorEqual(PDTCharIterator, PDTCharIterator, bool*);
220PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCharIteratorGetUnicode(PDTCharIterator,
221 UnicodeChar* buffer,
222 size_t bufsize,
223 size_t* pSize);
224PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCharIteratorGetPageIndex(PDTCharIterator, size_t*);
225PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCharIteratorGetQuad(PDTCharIterator, PDQuad* pQuad);
226PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCharIteratorGetOutlineQuad(PDTCharIterator, PDQuad* pQuad);
227PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCharIteratorGetTextBlock(PDTCharIterator, PDTTextBlock* pBlock);
228PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCharIteratorGetFontAttrs(PDTCharIterator,
229 PDTFontAttrs* pFontAttrs);
230PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCharIteratorGetParaAttrs(PDTCharIterator,
231 PDTParaAttrs* pParaAttrs);
232PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCharIteratorGetListAttrs(PDTCharIterator,
233 PDTListAttrs* pListAttrs);
234PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCharIteratorGetTransform(PDTCharIterator, PDMatrix*);
235PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCharIteratorGetTextItem(PDTCharIterator iter,
236 PDETextItem* pItem);
237
238/* Text Command */
239
240PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTFontWasSubstituted(bool* pSubstituted);
241
242PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCreateDeleteTextCommand(PDDoc doc,
243 PDTCharIterator beg,
244 PDTCharIterator end,
245 PDTTextCommand* pCmd);
246PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCreateInsertTextCommand(PDDoc doc,
247 PDTCharIterator pos,
248 const PDTFontAttrs* fontAttrs,
249 const wchar_t* chars,
250 size_t numChars,
251 PDTTextCommand* pCmd);
252PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCreateReplaceTextCommand(PDDoc doc,
253 PDTCharIterator beg,
254 PDTCharIterator end,
255 const PDTFontAttrs* fontAttrs,
256 const wchar_t* chars,
257 size_t numChars,
258 PDTTextCommand* pCmd);
259
260PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCreateChangeFontCommand(PDDoc doc,
261 PDTCharIterator beg,
262 PDTCharIterator end,
263 PDAtom fontFamily,
264 PDAtom fontFormat,
265 PDTTextCommand* pCmd);
266PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCreateChangeFontStyleCommand(PDDoc doc,
267 PDTCharIterator beg,
268 PDTCharIterator end,
269 PDFontStyle fontStyle,
270 PDTTextCommand* pCmd);
271PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCreateChangeFontSizeCommand(PDDoc doc,
272 PDTCharIterator beg,
273 PDTCharIterator end,
274 float fontSize,
275 PDTTextCommand* pCmd);
276PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCreateChangeFontColorCommand(PDDoc doc,
277 PDTCharIterator beg,
278 PDTCharIterator end,
279 PDColorValue fontColor,
280 PDTTextCommand* pCmd);
281PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCreateChangeEscapementCommand(PDDoc doc,
282 PDTCharIterator begin,
283 PDTCharIterator end,
284 PDTEscapement escapment,
285 PDTTextCommand* cmd);
286PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCreateChangeHorzScalingCommand(PDDoc doc,
287 PDTCharIterator begin,
288 PDTCharIterator end,
289 float horzScaling,
290 PDTTextCommand* pCmd);
291PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCreateChangeCharSpacingCommand(PDDoc doc,
292 PDTCharIterator begin,
293 PDTCharIterator end,
294 float charSpacing,
295 PDTTextCommand* pCmd);
296
297PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCreateChangeFontHighlightColorCommand(PDDoc doc,
298 PDTCharIterator beg,
299 PDTCharIterator end,
300 PDColorValue fontColor,
301 PDTTextCommand* pCmd);
302PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCreateChangeFontStrikeoutColorCommand(PDDoc doc,
303 PDTCharIterator beg,
304 PDTCharIterator end,
305 PDColorValue fontColor,
306 PDTTextCommand* pCmd);
307PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCreateChangeFontUnderlineColorCommand(PDDoc doc,
308 PDTCharIterator beg,
309 PDTCharIterator end,
310 PDColorValue fontColor,
311 PDTTextCommand* pCmd);
312
313PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCreateChangeParaAttrsCommand(PDDoc doc,
314 PDTCharIterator iter,
315 const PDTParaAttrs* paraAttrs,
316 PDTTextCommand* cmd);
317
318PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCreateNewTextBlockCommand(PDDoc doc,
319 PDTLayout layout,
320 const PDPointF* pagePoint,
321 const PDTFontAttrs* fontAttrs,
322 const PDTParaAttrs* paraAttrs,
323 PDTTextCommand* pCmd);
324PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCreateDeleteTextBlockCommand(PDDoc doc,
325 PDTLayout layout,
326 PDTTextBlock block,
327 PDTTextCommand* pCmd);
328PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCreateMergeTextBlocksCommand(PDDoc doc,
329 PDTCharIterator begin,
330 PDTCharIterator end,
331 PDTTextCommand* pCmd);
332PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCreateUpdateTextBlocksCommand(PDDoc doc,
333 PDTLayout layout,
334 PDTTextCommand* pCmd);
335PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCreateMoveTextBlockCommand(PDDoc doc,
336 PDTLayout layout,
337 size_t iBlock,
338 const PDPointF* pos,
339 PDTTextCommand* pCmd);
340PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCreateRotateTextBlockCommand(PDDoc doc,
341 PDTLayout layout,
342 size_t iBlock,
343 float radians,
344 PDTTextCommand* pCmd);
345PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCreateScaleTextBlockCommand(PDDoc doc,
346 PDTLayout layout,
347 size_t iBlock,
348 const PDSizeF* size,
349 PDTTextCommand* pCmd);
350PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCreateResizeTextBlockCommand(PDDoc doc,
351 PDTLayout layout,
352 size_t iBlock,
353 const PDSizeF* size,
354 PDTTextCommand* pCmd);
355PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCreateSyncWithContentCommand(PDDoc doc,
356 PDTLayout layout,
357 size_t iBlock,
358 bool onTop,
359 PDTTextCommand* pCmd);
360PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCreateChangeListStyleCommand(PDDoc doc,
361 PDTCharIterator begin,
362 PDTCharIterator end,
363 const PDTListLevelStyle* style,
364 PDTTextCommand* pCmd);
365PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCreateChangeListLevelCommand(PDDoc doc,
366 PDTCharIterator begin,
367 PDTCharIterator end,
368 int change,
369 PDTTextCommand* pCmd);
370
371PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCreateRemoveAnnotFromLayoutCommand(PDDoc doc,
372 PDTLayout layout,
373 PDAnnot annot,
374 PDTTextCommand* pCmd);
375
376PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTTextCommandDo(PDTTextCommand cmd);
377PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTTextCommandUndo(PDTTextCommand cmd);
378
379PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTTextCommandIsFontSubstituted(PDTTextCommand cmd, bool* pSubstituted);
380
381#ifdef __cplusplus
382}
383#endif
384
385#endif // PDFSDK_TEXTEDIT_H_INCLUDED_
int32_t PDErrCode
Definition errors.h:44
Definition fonts.h:25
Definition math_types.h:60
Definition math_types.h:12
Definition math_types.h:52
Definition math_types.h:30
Definition math_types.h:24
Definition text_edit.h:42
Definition text_edit.h:109
Definition text_edit.h:90
Definition text_edit.h:68
PDTEscapement
Defines the vertical position of text relative to the baseline.
Definition text_edit.h:36
@ kPDTEscapementSuperscript
Definition text_edit.h:39
@ kPDTEscapementSubscript
Definition text_edit.h:38
@ kPDTEscapementNone
Definition text_edit.h:37
PDTListLabelType
Defines the type of marker used to identify and distinguish list items within a list.
Definition text_edit.h:81
@ kPDTListLabelBullet
Definition text_edit.h:82
@ kPDTListLabelLetterCapital
Definition text_edit.h:87
@ kPDTListLabelRomanCapital
Definition text_edit.h:85
@ kPDTListLabelRomanSmall
Definition text_edit.h:84
@ kPDTListLabelLetterSmall
Definition text_edit.h:86
@ kPDTListLabelDecimal
Definition text_edit.h:83
PDTAlignment
Defines the positioning of text or graphical elements relative to a defined axis or margins.
Definition text_edit.h:59
@ kPDTAlignmentCentered
Definition text_edit.h:62
@ kPDTAlignmentJustify
Definition text_edit.h:64
@ kPDTAlignmentLeft
Definition text_edit.h:60
@ kPDTAlignmentRight
Definition text_edit.h:61
PDTListItemType
Defines the classification of individual list items within a structured list.
Definition text_edit.h:102
@ kPDTListItemFirst
Definition text_edit.h:104
@ kPDTListItemNone
Definition text_edit.h:103
@ kPDTListItemNext
Definition text_edit.h:105
@ kPDTListItemContinue
Definition text_edit.h:106