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 
427  bool OnKeyDown(uint32 key_code);
428 
437  bool OnKeyUp(uint32 key_code);
438 
447  bool OnLButtonDown(int page_index, const PointF& point);
448 
457  bool OnLButtonUp(int page_index, const PointF& point);
458 
467  bool OnLButtonDoubleClick(int page_index, const PointF& point);
468 
477  bool OnMouseMove(int page_index, const PointF& point);
478 
489  bool OnMouseWheel(int page_index, const PointF& point, int32 delta);
490 
496  bool CanSelectAll();
497 
503  bool SelectAll();
504 
510  bool CanDelete();
511 
517  bool DeleteSelected();
518 
524  bool CanCopy();
525 
531  bool CopySelected();
532 
538  bool CanCut();
539 
545  bool CutSelected();
546 
552  bool CanPaste();
553 
559  bool PasteSelected();
560 
566  bool CanDeselectAll();
567 
573  bool DeselectAll();
574 
582  void SetFontName(const WString& font_name);
583 
591  void SetFontSize(float font_size);
592 
600  void SetTextColor(RGB text_color);
601 
609  void SetBold(bool is_bold);
610 
618  void SetItalic(bool is_italic);
619 
628  void SetAlignment(foxit::common::Alignment alignment);
629 
637  void SetCharSpace(float char_space);
638 
646  void SetCharHorizontalScale(int scale);
647 
655  void SetLineSpace(float line_space);
656 
664  void SetUnderline(bool is_underline);
665 
673  void SetStrikethrough(bool is_striketrough);
674 
682  void SetSuperscript(bool is_superscript);
683 
691  void SetSubscript(bool is_subscript);
692 
700  void SetParagraphSpacing(float paragraph_space);
701 
707  void Indent();
708 
714  void Dedent();
715 
726  void SetBulletedList(BulletType bullet_type);
727 
736  void SetNumberedList(NumberingType numbering_type);
737 };
738 
744 class JoinSplit FS_FINAL : public Base {
745  public:
751  typedef enum _JoinSplitOperationType {
765 
766 
768  ~JoinSplit();
769 
775  JoinSplit(const JoinSplit& other);
776 
777  // User is strongly recommended NOT to use this method; otherwise unknown situation may occur.
778  explicit JoinSplit(FS_HANDLE handle);
779 
787  JoinSplit& operator=(const JoinSplit& other);
788 
796  bool operator==(const JoinSplit& other) const;
797 
805  bool operator!=(const JoinSplit& other) const;
806 
814  bool IsEmpty() const;
815 
821  bool Activate();
822 
828  bool Deactivate();
829 
835  void ExitJoinEditing();
836 
847  bool Render(Int32Array page_index_array, const common::Renderer& renderer);
848 
857  bool OnLButtonDown(int page_index, const PointF& point);
858 
867  bool OnLButtonUp(int page_index, const PointF& point);
868 
877  bool OnMouseMove(int page_index, const PointF& point);
878 
885 
891  void JoinBoxes();
892 
898  void SplitBoxes();
899 
905  void LinkBoxes();
906 
912  void UnlinkBoxes();
913 
919  void SelectNone();
920 };
921 
931 class ParagraphEditingMgr FS_FINAL : public Base{
932  public:
939  explicit ParagraphEditingMgr(ParagraphEditingProviderCallback* callback, const pdf::PDFDoc& document);
940 
943 
950 
951  // User is strongly recommended NOT to use this method; otherwise unknown situation may occur.
952  explicit ParagraphEditingMgr(FS_HANDLE handle = NULL);
953 
962 
970  bool operator==(const ParagraphEditingMgr& other) const;
971 
979  bool operator!=(const ParagraphEditingMgr& other) const;
980 
988  bool IsEmpty() const;
989 
996 
1003 
1012  void SetSystemDPI(float horizontal_dpi, float vertical_dpi);
1013 };
1014 } // namespace pageeditor
1015 } // namespace addon
1016 } // namespace foxit
1017 #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:744
项目符号类型:右上对角箭头。
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:212
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:757
Definition: fs_pdfdoc.h:771
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:763
bool Render(const Int32Array page_index_array, const common::Renderer &renderer)
在渲染器上绘制当前段落编辑操作状态。
编号类型:a) b) c)
Definition: fs_paragraphediting.h:300
Definition: fs_render.h:197
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:196
void * FS_HANDLE
句柄类型。
Definition: fs_basictypes.h:214
通用定义和类的头文件。
连接分割操作类型:分割。
Definition: fs_paragraphediting.h:755
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:194
Definition: fs_basictypes.h:449
连接分割操作类型:连接。
Definition: fs_paragraphediting.h:753
virtual void InvalidateRect(const pdf::PDFDoc &document, int page_index, const RectFArray &invalid_rects)=0
用于使页面矩形无效的回调函数。
PDF页面相关定义和类的头文件。
bool CanDelete()
检查是否可以删除文本。
void LinkBoxes()
调用此函数链接文本。
Definition: fs_paragraphediting.h:931
void SetLineSpace(float line_space)
为文本设置行间距。
ParagraphEditing & operator=(const ParagraphEditing &other)
赋值操作符。
Rotation
旋转的枚举。
Definition: fs_common.h:57
Foxit命名空间。
Definition: fs_taggedpdf.h:27
连接分割操作类型:不选择。
Definition: fs_paragraphediting.h:761
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:751
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:759
Definition: fx_coordinates.h:771
JoinSplit GetJoinSplit()
获取连接拆分对象。
void SetNumberedList(NumberingType numbering_type)
为文本设置编号列表的外观。