本页内容
创建、移动、删除文本、图像和路径
ComPDFKit 提供了完整丰富的创建、移动、删除文本、图像和路径的方法。
通过CPDFView
操作
CPDFView
默认提供基本的交互能力,允许用户创建和删除文本、图像和路径,拖拽移动图片和文字块位置,调整图片、文字块和路径大小等,实现类似在常见文字处理软件中的操作。
设置上下文菜单
如果需要复制、粘贴、剪切或删除文本或图片,可以通过CPDFView
的menuItemsEditingAtPoint
事件在上下文菜单中添加这些操作方法。
以下是如何在上下文菜单中添加复制、粘贴、删除等操作的示例代码:
swift
override func menuItemsEditing(at point: CGPoint, forPage page: CPDFPage) -> [UIMenuItem] {
var menuItems = super.menuItemsEditing(at: point, forPage: page)
self.menuPoint = point
self.menuPage = page
if editStatus == CEditingSelectStateEmpty {
let addTextItem = UIMenuItem(title: NSLocalizedString("Add Text", comment: ""),
action: #selector(addTextEditingItemAction(_:)))
let addImageItem = UIMenuItem(title: NSLocalizedString("Add Image", comment: ""),
action: #selector(addImageEditingItemAction(_:)))
menuItems.append(addImageItem)
menuItems.append(addTextItem)
}
return menuItems
}
objective-c
- (NSArray<UIMenuItem *> *)menuItemsEditingAtPoint:(CGPoint)point forPage:(CPDFPage *)page {
NSArray * items = [super menuItemsEditingAtPoint:point forPage:page];
NSMutableArray *menuItems = [NSMutableArray array];
if (items)
[menuItems addObjectsFromArray:items];
self.menuPoint = point;
self.menuPage = page;
if(CEditingSelectStateEmpty == self.editStatus) {
UIMenuItem *addTextItem = [[UIMenuItem alloc] initWithTitle:NSLocalizedString(@"Add Text", nil)
action:@selector(addTextEditingItemAction:)];
UIMenuItem *addImageItem = [[UIMenuItem alloc] initWithTitle:NSLocalizedString(@"Add Image", nil)
action:@selector(addImageEditingItemAction:)];
[menuItems addObject:addImageItem];
[menuItems addObject:addTextItem];
}
return menuItems;
}
插入文字和图片
您可以通过CPDFView
的changeEditingLoadType
和setShouAddEditAreaType
方法来指定是否可以插入文字和图片块。下面的代码将向您展示如何执行此操作:
swift
// 插入图片。
pdfView.changeEditingLoadType(.image)
pdfView.setShouAddEdit(.image)
// 插入文字。
pdfView.changeEditingLoadType(.text)
pdfView.setShouAddEdit(.text)
// 取消插入内容状态
pdfView.changeEditingLoadType([.image, .text])
pdfView.setShouAddEdit([])
objective-c
// 插入图片。
[pdfView changeEditingLoadType:CEditingLoadTypeImage];
[pdfView setShouAddEditAreaType:CAddEditingAreaTypeImage];
// 插入文字。
[pdfView changeEditingLoadType:CEditingLoadTypeText];
[pdfView setShouAddEditAreaType:CAddEditingAreaTypeText];
// 取消插入内容状态
[pdfView changeEditingLoadType:CEditingLoadTypeText | CEditingLoadTypeImage];
[pdfView setShouAddEditAreaType:CAddEditingAreaTypeNone];