Foxit PDF SDK
fs_paragraphediting.h
1 
15 #ifndef FS_PARAGRAPHEDITING_H_
16 #define FS_PARAGRAPHEDITING_H_
17 
18 #include "common/fs_common.h"
19 #include "common/fs_render.h"
20 #include "pdf/fs_pdfdoc.h"
21 #include "pdf/fs_pdfpage.h"
22 
28 namespace foxit {
32 namespace addon {
36 namespace pageeditor {
37 // forward declaration
38 class ParagraphEditing;
40 
46  public:
52  virtual void Release() = 0;
53 
61  virtual Matrix GetRenderMatrix(const pdf::PDFDoc& document, int page_index) = 0;
62 
70  virtual void* GetPageViewHandle(const pdf::PDFDoc& document, int page_index) = 0;
71 
77  virtual RectF GetClientRect(const pdf::PDFDoc& document) = 0;
78 
86  virtual float GetScale(const pdf::PDFDoc& document, int page_index) = 0;
87 
97  virtual bool GotoPageView(const pdf::PDFDoc& document, int page_index, float left, float top) = 0;
98 
104  virtual Int32Array GetVisiblePageIndexArray(const pdf::PDFDoc& document) = 0;
105 
113  virtual RectF GetPageVisibleRect(const pdf::PDFDoc& document, int page_index) = 0;
114 
122  virtual foxit::RectF GetPageRect(const pdf::PDFDoc& document, int page_index) = 0;
123 
129  virtual int GetCurrentPageIndex(const pdf::PDFDoc& document) = 0;
130 
138  virtual common::Rotation GetRotation(const pdf::PDFDoc& document, int page_index) = 0;
139 
148  virtual void InvalidateRect(const pdf::PDFDoc& document, int page_index, const RectFArray& invalid_rects) = 0;
149 
157  virtual void AddUndoItem(const ParagraphEditingUndoItem& undo_item) = 0;
158 
166  virtual void SetDocChangeMark(const pdf::PDFDoc& document) = 0;
167 
175  virtual void NotifyTextInputReachLimit(const pdf::PDFDoc& document, int page_index) = 0;
176 
177  protected:
180 };
181 
185 class ParagraphEditingUndoItem FS_FINAL : public Base {
186  public:
193 
196 
197  // User is strongly recommended NOT to use this method; otherwise unknown situation may occur.
198  explicit ParagraphEditingUndoItem(FS_HANDLE handle);
199 
208 
216  bool operator==(const ParagraphEditingUndoItem& other) const;
217 
225  bool operator!=(const ParagraphEditingUndoItem& other) const;
226 
234  bool IsEmpty() const;
235 
241  void Undo();
242 
248  void Redo();
249 };
250 
257 class ParagraphEditing FS_FINAL : public Base {
258  public:
264  typedef enum _BulletType {
283  } BulletType;
284 
290  typedef enum _NumberingType {
303  } NumberingType;
304 
305 
308 
314  ParagraphEditing(const ParagraphEditing& other);
315 
316  // User is strongly recommended NOT to use this method; otherwise unknown situation may occur.
317  explicit ParagraphEditing(FS_HANDLE handle);
318 
327 
335  bool operator==(const ParagraphEditing& other) const;
336 
344  bool operator!=(const ParagraphEditing& other) const;
345 
353  bool IsEmpty() const;
354 
360  bool Activate();
361 
367  bool Deactivate();
368 
378  void StartEditing(int page_index, const PointF& start_point, const PointF& end_point);
379 
387  void ExitEditing(bool is_end_directly = false);
388 
396  bool InsertText(const WString& text);
397 
408  bool Render(const Int32Array page_index_array, const common::Renderer& renderer);
409 
417  bool OnChar(uint32 char_code);
418 
430  bool OnKeyDown(uint32 key_code);
431 
443  bool OnKeyUp(uint32 key_code);
444 
453  bool OnLButtonDown(int page_index, const PointF& point);
454 
463  bool OnLButtonUp(int page_index, const PointF& point);
464 
473  bool OnLButtonDoubleClick(int page_index, const PointF& point);
474 
483  bool OnMouseMove(int page_index, const PointF& point);
484 
495  bool OnMouseWheel(int page_index, const PointF& point, int32 delta);
496 
502  bool CanSelectAll();
503 
509  bool SelectAll();
510 
516  bool CanDelete();
517 
523  bool DeleteSelected();
524 
530  bool CanCopy();
531 
537  bool CopySelected();
538 
544  bool CanCut();
545 
551  bool CutSelected();
552 
558  bool CanPaste();
559 
565  bool PasteSelected();
566 
572  bool CanDeselectAll();
573 
579  bool DeselectAll();
580 
588  void SetFontName(const WString& font_name);
589 
597  void SetFontSize(float font_size);
598 
606  void SetTextColor(RGB text_color);
607 
615  void SetBold(bool is_bold);
616 
624  void SetItalic(bool is_italic);
625 
634  void SetAlignment(foxit::common::Alignment alignment);
635 
643  void SetCharSpace(float char_space);
644 
652  void SetCharHorizontalScale(int scale);
653 
661  void SetLineSpace(float line_space);
662 
670  void SetUnderline(bool is_underline);
671 
679  void SetStrikethrough(bool is_striketrough);
680 
688  void SetSuperscript(bool is_superscript);
689 
697  void SetSubscript(bool is_subscript);
698 
706  void SetParagraphSpacing(float paragraph_space);
707 
713  void Indent();
714 
720  void Dedent();
721 
732  void SetBulletedList(BulletType bullet_type);
733 
742  void SetNumberedList(NumberingType numbering_type);
743 };
744 
750 class JoinSplit FS_FINAL : public Base {
751  public:
757  typedef enum _JoinSplitOperationType {
771 
772 
774  ~JoinSplit();
775 
781  JoinSplit(const JoinSplit& other);
782 
783  // User is strongly recommended NOT to use this method; otherwise unknown situation may occur.
784  explicit JoinSplit(FS_HANDLE handle);
785 
793  JoinSplit& operator=(const JoinSplit& other);
794 
802  bool operator==(const JoinSplit& other) const;
803 
811  bool operator!=(const JoinSplit& other) const;
812 
820  bool IsEmpty() const;
821 
827  bool Activate();
828 
834  bool Deactivate();
835 
841  void ExitJoinEditing();
842 
853  bool Render(Int32Array page_index_array, const common::Renderer& renderer);
854 
863  bool OnLButtonDown(int page_index, const PointF& point);
864 
873  bool OnLButtonUp(int page_index, const PointF& point);
874 
883  bool OnMouseMove(int page_index, const PointF& point);
884 
891 
897  void JoinBoxes();
898 
904  void SplitBoxes();
905 
911  void LinkBoxes();
912 
918  void UnlinkBoxes();
919 
925  void SelectNone();
926 };
927 
937 class ParagraphEditingMgr FS_FINAL : public Base{
938  public:
945  explicit ParagraphEditingMgr(ParagraphEditingProviderCallback* callback, const pdf::PDFDoc& document);
946 
949 
956 
957  // User is strongly recommended NOT to use this method; otherwise unknown situation may occur.
958  explicit ParagraphEditingMgr(FS_HANDLE handle = NULL);
959 
968 
976  bool operator==(const ParagraphEditingMgr& other) const;
977 
985  bool operator!=(const ParagraphEditingMgr& other) const;
986 
994  bool IsEmpty() const;
995 
1002 
1009 
1018  void SetSystemDPI(float horizontal_dpi, float vertical_dpi);
1019 };
1020 } // namespace pageeditor
1021 } // namespace addon
1022 } // namespace foxit
1023 #endif // FS_PARAGRAPHEDIT_H_
void SetSuperscript(bool is_superscript)
为文本设置上标属性。
bool OnLButtonDown(int page_index, const PointF &point)
鼠标左键按下时调用此函数。
JoinSplit(const JoinSplit &other)
拷贝构造函数。
virtual foxit::RectF GetPageRect(const pdf::PDFDoc &document, int page_index)=0
用于获取设备坐标系中页面矩形的回调函数。
bool operator==(const JoinSplit &other) const
相等操作符。
void SetUnderline(bool is_underline)
为文本设置下划线。
void UnlinkBoxes()
调用此函数取消链接文本。
bool operator!=(const ParagraphEditingMgr &other) const
不等操作符。
bool OnMouseMove(int page_index, const PointF &point)
鼠标移动时调用此函数。
项目符号类型:无。
Definition: fs_paragraphediting.h:266
Definition: fs_paragraphediting.h:750
项目符号类型:右上对角箭头。
Definition: fs_paragraphediting.h:280
项目符号类型:实心菱形。
Definition: fs_paragraphediting.h:272
bool Deactivate()
停用连接拆分编辑。
bool CutSelected()
剪切选中的文本。
virtual bool GotoPageView(const pdf::PDFDoc &document, int page_index, float left, float top)=0
转到页面视图的回调函数。
NumberingType
编号类型的枚举。
Definition: fs_paragraphediting.h:290
virtual ~ParagraphEditingProviderCallback()
析构函数。
Definition: fs_paragraphediting.h:179
项目符号类型:实心圆。
Definition: fs_paragraphediting.h:268
编号类型:1) 2) 3)
Definition: fs_paragraphediting.h:296
bool OnKeyDown(uint32 key_code)
键盘按键按下时调用此函数。
bool operator!=(const ParagraphEditingUndoItem &other) const
不等操作符。
bool CanPaste()
检查是否可以粘贴文本。
PDF文档相关定义和类的头文件。
项目符号类型:黑菱形减去白色。
Definition: fs_paragraphediting.h:282
virtual RectF GetClientRect(const pdf::PDFDoc &document)=0
获取设备坐标系中客户端矩形的回调函数。
void StartEditing(int page_index, const PointF &start_point, const PointF &end_point)
开始段落编辑。
uint32 RGB
RGB 颜色类型,24 位,((b) | ((g) << 8) | ((r) << 16)))
Definition: fs_basictypes.h:211
Definition: fx_coordinates.h:30
bool OnLButtonDown(int page_index, const PointF &point)
鼠标左键按下时调用此函数。
编号类型:a. b. c.
Definition: fs_paragraphediting.h:302
Definition: fs_paragraphediting.h:257
bool IsEmpty() const
检查当前对象是否为空。
bool IsEmpty() const
检查当前对象是否为空。
bool CopySelected()
复制选中的文本。
宽字符串类
Definition: fx_string.h:1457
bool Render(Int32Array page_index_array, const common::Renderer &renderer)
在渲染器上绘制当前连接拆分操作状态。
void SetBulletedList(BulletType bullet_type)
为文本设置项目符号列表。
virtual int GetCurrentPageIndex(const pdf::PDFDoc &document)=0
用于获取当前页面索引的回调函数。
void SetSystemDPI(float horizontal_dpi, float vertical_dpi)
为使用的段落编辑提供者设置 DPI。
bool Deactivate()
停用段落编辑。
virtual Int32Array GetVisiblePageIndexArray(const pdf::PDFDoc &document)=0
用于获取可见页面索引的回调函数。
连接分割操作类型:链接。
Definition: fs_paragraphediting.h:763
Definition: fs_pdfdoc.h:768
void SelectNone()
调用此函数清除所有选中的文本。
bool GetEnableStatus(JoinSplit::JoinSplitOperationType type)
获取连接拆分编辑操作状态。
bool operator==(const ParagraphEditingMgr &other) const
相等操作符。
void Indent()
增加文本缩进。
bool operator==(const ParagraphEditingUndoItem &other) const
相等操作符。
void SetFontName(const WString &font_name)
为文本设置字体名称。
连接分割操作类型:关闭。
Definition: fs_paragraphediting.h:769
bool Render(const Int32Array page_index_array, const common::Renderer &renderer)
在渲染器上绘制当前段落编辑操作状态。
编号类型:a) b) c)
Definition: fs_paragraphediting.h:300
Definition: fs_render.h:201
ParagraphEditingMgr(ParagraphEditingProviderCallback *callback, const pdf::PDFDoc &document)
构造函数。
bool IsEmpty() const
检查当前对象是否为空。
bool operator!=(const JoinSplit &other) const
不等操作符。
void ExitEditing(bool is_end_directly=false)
退出段落编辑。
项目符号类型:对勾。
Definition: fs_paragraphediting.h:274
bool DeleteSelected()
删除选中的文本。
bool OnKeyUp(uint32 key_code)
键盘按键抬起时调用此函数。
Definition: fs_paragraphediting.h:185
void SetStrikethrough(bool is_striketrough)
为文本设置删除线样式。
bool DeselectAll()
取消选择所有文本。
JoinSplit & operator=(const JoinSplit &other)
赋值操作符。
bool InsertText(const WString &text)
在页面中插入文本时调用此函数。
ParagraphEditingUndoItem(const ParagraphEditingUndoItem &other)
构造函数,使用另一个撤销项目对象。
bool OnChar(uint32 char_code)
输入字符代码时调用此函数。
项目符号类型:右箭头(上白下黑)。
Definition: fs_paragraphediting.h:276
virtual Matrix GetRenderMatrix(const pdf::PDFDoc &document, int page_index)=0
获取渲染矩阵的回调函数。
bool OnLButtonUp(int page_index, const PointF &point)
鼠标左键抬起时调用此函数。
virtual void NotifyTextInputReachLimit(const pdf::PDFDoc &document, int page_index)=0
用于通知文本输入达到限制的回调函数。
项目符号类型:反切圆。
Definition: fs_paragraphediting.h:278
virtual void Release()=0
用于释放当前回调对象自身的回调函数。
编号类型:无。
Definition: fs_paragraphediting.h:292
ParagraphEditing(const ParagraphEditing &other)
构造函数,使用另一个段落编辑对象。
项目符号类型:实心矩形。
Definition: fs_paragraphediting.h:270
virtual void AddUndoItem(const ParagraphEditingUndoItem &undo_item)=0
用于通知页面添加撤销操作的回调函数。
void SetTextColor(RGB text_color)
为文本设置文本颜色。
bool OnMouseWheel(int page_index, const PointF &point, int32 delta)
鼠标滚轮滚动时调用此函数。
bool operator==(const ParagraphEditing &other) const
相等操作符。
void ExitJoinEditing()
退出连接拆分编辑。
BulletType
项目符号类型的枚举。
Definition: fs_paragraphediting.h:264
FX_UINT32 uint32
无符号 32 位整数。
Definition: fs_basictypes.h:195
void * FS_HANDLE
句柄类型。
Definition: fs_basictypes.h:213
通用定义和类的头文件。
连接分割操作类型:分割。
Definition: fs_paragraphediting.h:761
ParagraphEditing GetParagraphEditing()
获取段落编辑对象。
编号类型:1. 2. 3.
Definition: fs_paragraphediting.h:294
bool operator!=(const ParagraphEditing &other) const
不等操作符。
virtual float GetScale(const pdf::PDFDoc &document, int page_index)=0
获取页面缩放比例的回调函数。
Alignment
对齐方式(水平)枚举。
Definition: fs_common.h:94
bool IsEmpty() const
检查当前对象是否为空。
bool CanCut()
检查是否可以剪切文本。
void SetParagraphSpacing(float paragraph_space)
为文本设置段落间距。
FX_INT32 int32
有符号 32 位整数。
Definition: fs_basictypes.h:193
Definition: fs_basictypes.h:471
连接分割操作类型:连接。
Definition: fs_paragraphediting.h:759
virtual void InvalidateRect(const pdf::PDFDoc &document, int page_index, const RectFArray &invalid_rects)=0
用于使页面矩形无效的回调函数。
PDF页面相关定义和类的头文件。
bool CanDelete()
检查是否可以删除文本。
void LinkBoxes()
调用此函数链接文本。
Definition: fs_paragraphediting.h:937
void SetLineSpace(float line_space)
为文本设置行间距。
ParagraphEditing & operator=(const ParagraphEditing &other)
赋值操作符。
Rotation
旋转的枚举。
Definition: fs_common.h:57
Foxit 命名空间。
Definition: fs_accessibility.h:28
连接分割操作类型:不选择。
Definition: fs_paragraphediting.h:767
void SplitBoxes()
调用此函数拆分文本。
bool Activate()
激活连接拆分编辑。
virtual void * GetPageViewHandle(const pdf::PDFDoc &document, int page_index)=0
获取页面视图窗口句柄的回调函数。
bool CanCopy()
检查是否可以复制文本。
void Dedent()
减少文本缩进。
virtual RectF GetPageVisibleRect(const pdf::PDFDoc &document, int page_index)=0
用于获取设备坐标系中可见页面矩形的回调函数。
virtual common::Rotation GetRotation(const pdf::PDFDoc &document, int page_index)=0
用于获取页面视图旋转的回调函数。
void SetCharHorizontalScale(int scale)
为文本设置字符水平缩放。
virtual void SetDocChangeMark(const pdf::PDFDoc &document)=0
用于通知文档已更改的回调函数。
bool Activate()
激活段落编辑。
void SetBold(bool is_bold)
为文本设置粗体状态。
void SetSubscript(bool is_subscript)
为文本设置下标属性。
#define NULL
空指针值。
Definition: fx_system.h:792
Definition: fx_coordinates.h:1076
JoinSplitOperationType
连接分割操作类型的枚举。
Definition: fs_paragraphediting.h:757
bool PasteSelected()
粘贴复制的文本。
void SetFontSize(float font_size)
为文本设置字体大小。
void JoinBoxes()
调用此函数连接文本。
bool OnLButtonDoubleClick(int page_index, const PointF &point)
鼠标左键双击时调用此函数。
ParagraphEditingMgr & operator=(const ParagraphEditingMgr &other)
赋值操作符。
void SetAlignment(foxit::common::Alignment alignment)
为文本设置文本对齐方式。
void SetItalic(bool is_italic)
为文本设置斜体状态。
bool CanDeselectAll()
检查是否可以取消选择所有文本。
Header file for rendering related definitions and classes.
void SetCharSpace(float char_space)
为文本设置字符间距。
编号类型:A. B. C.
Definition: fs_paragraphediting.h:298
ParagraphEditingUndoItem & operator=(const ParagraphEditingUndoItem &other)
赋值操作符。
bool OnMouseMove(int page_index, const PointF &point)
鼠标移动时调用此函数。
bool CanSelectAll()
检查是否可以全选文本。
bool OnLButtonUp(int page_index, const PointF &point)
鼠标左键抬起时调用此函数。
连接分割操作类型:取消链接。
Definition: fs_paragraphediting.h:765
Definition: fx_coordinates.h:771
JoinSplit GetJoinSplit()
获取连接拆分对象。
void SetNumberedList(NumberingType numbering_type)
为文本设置编号列表的外观。