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 PDTCreateDeleteTextCommand(PDDoc doc,
241 PDTCharIterator beg,
242 PDTCharIterator end,
243 PDTTextCommand* pCmd);
244PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCreateInsertTextCommand(PDDoc doc,
245 PDTCharIterator pos,
246 const PDTFontAttrs* fontAttrs,
247 const wchar_t* chars,
248 size_t numChars,
249 PDTTextCommand* pCmd);
250PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCreateReplaceTextCommand(PDDoc doc,
251 PDTCharIterator beg,
252 PDTCharIterator end,
253 const PDTFontAttrs* fontAttrs,
254 const wchar_t* chars,
255 size_t numChars,
256 PDTTextCommand* pCmd);
257
258PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCreateChangeFontCommand(PDDoc doc,
259 PDTCharIterator beg,
260 PDTCharIterator end,
261 PDAtom fontFamily,
262 PDAtom fontFormat,
263 PDTTextCommand* pCmd);
264PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCreateChangeFontStyleCommand(PDDoc doc,
265 PDTCharIterator beg,
266 PDTCharIterator end,
267 PDFontStyle fontStyle,
268 PDTTextCommand* pCmd);
269PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCreateChangeFontSizeCommand(PDDoc doc,
270 PDTCharIterator beg,
271 PDTCharIterator end,
272 float fontSize,
273 PDTTextCommand* pCmd);
274PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCreateChangeFontColorCommand(PDDoc doc,
275 PDTCharIterator beg,
276 PDTCharIterator end,
277 PDColorValue fontColor,
278 PDTTextCommand* pCmd);
279PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCreateChangeEscapementCommand(PDDoc doc,
280 PDTCharIterator begin,
281 PDTCharIterator end,
282 PDTEscapement escapment,
283 PDTTextCommand* cmd);
284PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCreateChangeHorzScalingCommand(PDDoc doc,
285 PDTCharIterator begin,
286 PDTCharIterator end,
287 float horzScaling,
288 PDTTextCommand* pCmd);
289PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCreateChangeCharSpacingCommand(PDDoc doc,
290 PDTCharIterator begin,
291 PDTCharIterator end,
292 float charSpacing,
293 PDTTextCommand* pCmd);
294
295PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCreateChangeFontHighlightColorCommand(PDDoc doc,
296 PDTCharIterator beg,
297 PDTCharIterator end,
298 PDColorValue fontColor,
299 PDTTextCommand* pCmd);
300PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCreateChangeFontStrikeoutColorCommand(PDDoc doc,
301 PDTCharIterator beg,
302 PDTCharIterator end,
303 PDColorValue fontColor,
304 PDTTextCommand* pCmd);
305PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCreateChangeFontUnderlineColorCommand(PDDoc doc,
306 PDTCharIterator beg,
307 PDTCharIterator end,
308 PDColorValue fontColor,
309 PDTTextCommand* pCmd);
310
311PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCreateChangeParaAttrsCommand(PDDoc doc,
312 PDTCharIterator iter,
313 const PDTParaAttrs* paraAttrs,
314 PDTTextCommand* cmd);
315
316PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCreateNewTextBlockCommand(PDDoc doc,
317 PDTLayout layout,
318 const PDPointF* pagePoint,
319 const PDTFontAttrs* fontAttrs,
320 const PDTParaAttrs* paraAttrs,
321 PDTTextCommand* pCmd);
322PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCreateDeleteTextBlockCommand(PDDoc doc,
323 PDTLayout layout,
324 PDTTextBlock block,
325 PDTTextCommand* pCmd);
326PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCreateMergeTextBlocksCommand(PDDoc doc,
327 PDTCharIterator begin,
328 PDTCharIterator end,
329 PDTTextCommand* pCmd);
330PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCreateUpdateTextBlocksCommand(PDDoc doc,
331 PDTLayout layout,
332 PDTTextCommand* pCmd);
333PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCreateMoveTextBlockCommand(PDDoc doc,
334 PDTLayout layout,
335 size_t iBlock,
336 const PDPointF* pos,
337 PDTTextCommand* pCmd);
338PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCreateRotateTextBlockCommand(PDDoc doc,
339 PDTLayout layout,
340 size_t iBlock,
341 float radians,
342 PDTTextCommand* pCmd);
343PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCreateScaleTextBlockCommand(PDDoc doc,
344 PDTLayout layout,
345 size_t iBlock,
346 const PDSizeF* size,
347 PDTTextCommand* pCmd);
348PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCreateResizeTextBlockCommand(PDDoc doc,
349 PDTLayout layout,
350 size_t iBlock,
351 const PDSizeF* size,
352 PDTTextCommand* pCmd);
353PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCreateSyncWithContentCommand(PDDoc doc,
354 PDTLayout layout,
355 size_t iBlock,
356 bool onTop,
357 PDTTextCommand* pCmd);
358PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCreateChangeListStyleCommand(PDDoc doc,
359 PDTCharIterator begin,
360 PDTCharIterator end,
361 const PDTListLevelStyle* style,
362 PDTTextCommand* pCmd);
363PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCreateChangeListLevelCommand(PDDoc doc,
364 PDTCharIterator begin,
365 PDTCharIterator end,
366 int change,
367 PDTTextCommand* pCmd);
368
369PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTCreateRemoveAnnotFromLayoutCommand(PDDoc doc,
370 PDTLayout layout,
371 PDAnnot annot,
372 PDTTextCommand* pCmd);
373
374PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTTextCommandDo(PDTTextCommand cmd);
375PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTTextCommandUndo(PDTTextCommand cmd);
376
377PDF_TEXTEDIT_API PDErrCode PDFSDK_CALLCONV PDTTextCommandIsFontSubstituted(PDTTextCommand cmd, bool* pSubstituted);
378
379#ifdef __cplusplus
380}
381#endif
382
383#endif // PDFSDK_TEXTEDIT_H_INCLUDED_
int32_t PDErrCode
Definition errors.h:44
PDFontStyle
Specifies the styling to apply to a font.
Definition fonts.h:24
Definition fonts.h:32
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