Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

增强合并文档时的文件分割、书签命名 #237

Open
zwo1a opened this issue Oct 4, 2024 · 6 comments
Open

增强合并文档时的文件分割、书签命名 #237

zwo1a opened this issue Oct 4, 2024 · 6 comments
Labels
合并 合并图片和PDF文档 改进 New feature or request 讨论 Further information is requested

Comments

@zwo1a
Copy link

zwo1a commented Oct 4, 2024

使用场景

  1. 增强合并文档时的文件分割:目前文档合并功能只能将顶层文件夹合并为单独的 PDF 文件,而不能将子文件夹中合并为单独的 PDF 文件。建议添加一个选项以便将任意层的文件夹合并为单独的文件。

例如:我想将每个日期下的 file_01, file_02 ... 合并为单独的 PDF 文件,目前无法做到。

C:.
├─2024-01-01
│  ├─file_01
│  │      pic_001.jpg
│  │      pic_002.jpg
│  │
│  └─file_02
│          pic_001.jpg
│          pic_002.jpg
│
└─2024-01-02
    ├─file_01
    │      pic_001.jpg
    │      pic_002.jpg
    │
    └─file_02
            pic_001.jpg
            pic_002.jpg
  1. 增强书签命名:目前仅提供了删除前导数字的选项,并将每个文件(夹)都添加进书签,如果添加书签文本替换(及使用正则表达式替换)、使用变量为文件命名,或许会更有助益。

功能应该怎样实现

  1. 增强合并文档时的文件分割:
  • 将左下角“顶层项目合并为单独PDF文件”复选框修改成文本框,可输入将 [正数/倒数] [xx] 层项目合并为单独的PDF文件,默认0代表将列表中的内容合并为一整份单独文件。
  • 文件保存位置可选择是否保留原始文件夹结构。
  1. 增强书签命名举例:
  • 可设置书签添加到第几层或倒数第几层
  • 对文本进行替换和正则表达式替换
  • 如果有计划添加一个以变量命名书签的功能,可以参考以下内容:

书签命名窗口举例:

书签与文件命名窗口:--------------------------
预设(下拉菜单):
  [ 原始文件名 ] / [ 不创建书签 ] / [ 删除前导数字 ]
  [ 应用 ]   [ 新建 ]   [ 保存 ]   [ 删除 ]   [ 导出到文件 ]  [ 从文件导入 ]
---------------------------------------------------
批量设置(将以下所有层设置为):
  [ %filename% ]
  [ 应用 ]   [ 全部清空 ]
---------------------------------------------------
顺序:
  [x] 正数    [ ] 倒数
---------------------------------------------------
文件(夹)命名(文本框,左侧为自动行号,用户按一层一行方式输入,层为原文件夹的层,留空则跳过该层,子文件的内容则移到上一层文件夹,哪一行开始作为书签由上一条中"将 [正数/倒数] [xx] 层项目合并为单独的PDF文件"文本框中输入的内容决定):

1| 
2| [%filename%]
3| [%bookmarks_number%.$replace(%filename%, "pic", "图片")]
---------------------------------------------------
原文件带有书签时,使用如下内容作为书签:
 [ %original_bookmarks% ]
---------------------------------------------------
[ 点此快速插入变量 ]    [ 变量说明 ]
---------------------------------------------------
输出预览(显示到第一个PDF输出):
2024-01-01\file_01.pdf (书签:1.图片_1 ...)

变量说明:
留空:不创建该层书签
%filename%:原始文件名(不含扩展名,如果该层是文件夹,则返回文件夹名)
%file_ext%:文件扩展名
%folder%:文件所在文件夹名
%page_number%:保存后在PDF中的页数
%bookmarks_number%:保存后在PDF中书签的序号
%original_bookmarks%:原文件带有书签时,复制源文件的书签
函数:
$directory(X,N):向上 N 层,从文件路径 X 中提取目录名称
$len(X):X 的长度
$left(X,Y):将 X 从左到右取 Y 个字
$right(X,Y):将 X 从右到左取 Y 个字
$add(X,Y):返回 X + Y 的值
$sub(X,Y):返回 X - Y 的值
$replace(A,B,C):将字符串 A 中出现的所有字符串 B 替换为字符串 C
$regex_replace(A,B,C):将字符串 A 中出现的符合正则表达式 B 的字符替换为字符串 C(正则表达式以双引号"包括,需要输入双引号时则输入两个双引号""代表转义)。

举例:
%bookmarks_number%.$replace(%filename%,"pic","图片") 代表最终保存的 PDF 文件中书签的数字+小数点+将原始文件名中的"pic"替换为"图片"之后的字符串

类似软件

编辑 PDF 书签:PdgCntEditor

以变量指代文件名:Foobar2000

在公式中使用正则表达式替换:Excel
https://support.microsoft.com/en-us/office/regexreplace-function-9c030bb2-5e47-4efc-bad5-4582d7100897

其它内容

与文件、命名有关的相关问题:#213

@wmjordan
Copy link
Owner

wmjordan commented Oct 9, 2024

太复杂了。

提示:合并文件功能工具栏上的“文件”下拉菜单中,有一个“保存文件列表”功能。你可以将列表和文件对应的书签等信息导出到文本编辑器中,编辑后,再用“加载文件列表”将编辑过的列表和书签名称,重新加载到文本列表框。

@wmjordan wmjordan added 改进 New feature or request 讨论 Further information is requested 合并 合并图片和PDF文档 labels Oct 9, 2024
@zwo1a
Copy link
Author

zwo1a commented Oct 14, 2024

感谢回复,目前我使用保存文件列表方法遇到的一个小困难是:

  1. 将书签文本替换为空,然后重新从 xml 导入,没有书签名的文件依然会默认从文件名生成书签文本,需要先在“功能选项”中关闭“添加项时自动生成书签文本”。
  2. 或许可以添加一个排除空文件夹的选项,因为空文件也会生成一个书签,而它又不包含页面。

@wmjordan
Copy link
Owner

感谢回复,目前我使用保存文件列表方法遇到的一个小困难是:

  1. 将书签文本替换为空,然后重新从 xml 导入,没有书签名的文件依然会默认从文件名生成书签文本,需要先在“功能选项”中关闭“添加项时自动生成书签文本”。
  2. 或许可以添加一个排除空文件夹的选项,因为空文件也会生成一个书签,而它又不包含页面。
  1. 这是个问题,下个版本尝试将其修复。
  2. 为什么会有空文件夹的呢?可否在操作之前将其删掉。

@zwo1a
Copy link
Author

zwo1a commented Oct 19, 2024

2. 为什么会有空文件夹的呢?可否在操作之前将其删掉。

我的表达不太准确,应该是不包含图片及 PDF 的文件夹。
这些文件夹可以删除,但是对于用户来说比较复杂,需要手工在列表中删除不包含图片及 PDF 的文件夹,或是要修改源文件夹的结构。
既然这些文件夹里的内容无法被合并,那么有一个直接排除这些不包含有效文件的文件夹会比较方便。

@wmjordan
Copy link
Owner

2. 为什么会有空文件夹的呢?可否在操作之前将其删掉。

我的表达不太准确,应该是不包含图片及 PDF 的文件夹。 这些文件夹可以删除,但是对于用户来说比较复杂,需要手工在列表中删除不包含图片及 PDF 的文件夹,或是要修改源文件夹的结构。 既然这些文件夹里的内容无法被合并,那么有一个直接排除这些不包含有效文件的文件夹会比较方便。

下个版本添加文件夹时,文件列表可接受不包含有效文件的文件夹,但在合并时会忽略这些文件夹。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
合并 合并图片和PDF文档 改进 New feature or request 讨论 Further information is requested
Projects
None yet
Development

No branches or pull requests

3 participants
@wmjordan @zwo1a and others