forked from wmjordan/PDFPatcher
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Constants.cs
504 lines (475 loc) · 21 KB
/
Constants.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
using System;
using System.Collections.Generic;
using iTextSharp.text.pdf;
using E = System.Text.Encoding;
namespace PDFPatcher
{
internal enum Function
{
FrontPage, InfoFileOptions, InfoExchanger, ExtractPages, ExtractImages, RenderPages, EditorOptions, Patcher, PatcherOptions, Merger, MergerOptions, About, BookmarkEditor, Options, BookmarkGenerator, Ocr, Inspector, Rename, Log, Default, CustomizeToolbar
}
internal static class Constants
{
internal const string AppName = "PDF 补丁丁";
internal const string AppEngName = "PDFPatcher";
internal const string AppHomePage = "http://pdfpatcher.cnblogs.com";
internal const string AppHubPage = "https://gitee.com/wmjordan/pdfpatcher";
internal const string AppUpdateFile = "http://files.cnblogs.com/pdfpatcher/pdfpatcher.update.xml";
/// <summary>
/// 信息文件根元素。
/// </summary>
internal const string PdfInfo = "PDF信息";
internal const string InfoDocVersion = "0.3.3";
internal const string ContentPrefix = "pdf";
internal const string ContentNamespace = "pdf:ContentXml";
internal static class FileExtensions
{
internal const string Json = ".json";
internal const string JsonFilter = "程序配置文件 (*.json)|*.json";
internal const string Pdf = ".pdf";
internal const string PdfFilter = "PDF 文件 (*.pdf)|*.pdf";
internal const string Txt = ".txt";
internal const string TxtFilter = "简易文本书签文件 (*.txt)|*.txt";
internal const string Xml = ".xml";
internal const string XmlFilter = "PDF 信息文件 (*.xml)|*.xml";
internal const string PdfOrXmlFilter = "PDF 文件或信息文件 (*.pdf, *.xml)|*.pdf;*.xml";
internal const string XmlOrTxtFilter = "书签文件 (*.xml, *.txt)|*.xml;*.txt";
internal const string AllEditableFilter = "所有包含 PDF 信息的文件(*.pdf,*.xml,*.txt)|*.pdf;*.xml;*.txt|" + PdfFilter + "|" + XmlFilter + "|" + TxtFilter;
internal const string AllFilter = "所有文件|*.*";
internal const string ImageFilter = "图片文件 (*.jpg, *.jpeg, *.tiff, *.tif, *.png, *.gif)|*.jpg;*.jpeg;*.tiff;*.tif;*.png;*.gif";
internal const string Tif = ".tif";
internal const string Tiff = ".tiff";
internal const string Jpg = ".jpg";
internal const string Jpeg = ".jpeg";
internal const string Png = ".png";
internal const string Gif = ".gif";
internal const string Jp2 = ".jp2";
internal const string Bmp = ".bmp";
internal const string Dat = ".dat";
internal const string Tmp = ".tmp";
internal const string Ttf = ".ttf";
internal const string Ttc = ".ttc";
internal const string Otf = ".otf";
internal readonly static string[] AllBookmarkExtension = { ".xml", ".txt" };
internal readonly static string[] PdfAndAllBookmarkExtension = { ".pdf", ".xml", ".txt" };
internal readonly static string[] AllSupportedImageExtension = { Tif, Jpg, Png, Gif, Tiff, Jpeg, Bmp, Jp2 };
}
#region 功能名称
static class Functions
{
internal const string FrontPage = "FrontPage";
internal const string Patcher = "Patcher";
internal const string Merger = "Merger";
internal const string ImageExtractor = "ImageExtractor";
internal const string PageExtractor = "PageExtractor";
internal const string PageRenderer = "PageRenderer";
internal const string BookmarkEditor = "BookmarkEditor";
internal const string BookmarkGenerator = "BookmarkGenerator";
internal const string Ocr = "Ocr";
internal const string Inspector = "Inspector";
internal const string Log = "Log";
internal const string About = "About";
}
#endregion
#region PDF 对象类型
internal static class ObjectTypes
{
internal static readonly string[] Names = { "字典", "名称", "数值", "文本", "数组", "布尔", "引用" };
internal static readonly int[] IDs = { PdfObject.DICTIONARY, PdfObject.NAME, PdfObject.NUMBER, PdfObject.STRING, PdfObject.ARRAY, PdfObject.BOOLEAN, PdfObject.INDIRECT };
}
#endregion
#region 文件名替代符
internal static class FileNameMacros
{
internal const string FileName = "<源文件名>";
internal const string FolderName = "<源目录名>";
internal const string PathName = "<源目录路径>";
internal const string TitleProperty = "<" + Info.Title + ">";
internal const string AuthorProperty = "<" + Info.Author + ">";
internal const string SubjectProperty = "<" + Info.Subject + ">";
internal const string KeywordsProperty = "<" + Info.Keywords + ">";
}
#endregion
#region 度量单位
internal static class Units
{
internal const string ThisName = "度量单位";
internal const string Unit = "单位";
internal const string Point = "点";
internal const string CM = "厘米";
internal const string MM = "毫米";
internal const string Inch = "英寸";
internal const float CmToPoint = 72f / 2.54f;
internal const float MmToPoint = 7.2f / 2.54f;
internal const float DefaultDpi = 72f;
internal static readonly string[] Names = { CM, MM, Inch, Point };
internal static readonly float[] Factors = { CmToPoint, MmToPoint, DefaultDpi, 1 };
}
#endregion
#region 对齐方式
internal static class Alignments
{
internal static readonly string[] HorizontalAlignments = { "左对齐", "水平居中", "右对齐" };
internal static readonly string[] VerticalAlignments = { "置顶", "垂直居中", "置底" };
}
#endregion
#region 方位
internal static class Coordinates
{
internal const string Left = "左";
internal const string Right = "右";
internal const string Top = "上";
internal const string Bottom = "下";
internal const string Width = "宽";
internal const string Height = "高";
internal const string Direction = "方向";
internal const string Horizontal = "横向";
internal const string Vertical = "纵向";
internal const string ScaleFactor = "比例";
internal const string Unchanged = "保持不变";
}
#endregion
#region 编码
internal static class Encoding
{
internal const string SystemDefault = "系统默认";
internal const string Automatic = "自动选择";
internal static readonly string[] EncodingNames = { Automatic,
SystemDefault,
"UTF-16 Big Endian",
"UTF-16 Little Endian",
"UTF-8",
"GB18030",
"BIG5" };
internal static readonly E[] Encodings = { null,
E.Default,
E.BigEndianUnicode,
E.Unicode,
E.UTF8,
E.GetEncoding ("gb18030"),
E.GetEncoding ("big5") };
}
#endregion
#region 文档信息
internal static class Info
{
internal const string ThisName = "文档信息";
internal const string ProductName = "程序名称";
internal const string ProductVersion = "程序版本";
internal const string ExportDate = "导出时间";
internal const string DocumentName = "PDF文件名";
internal const string DocumentPath = "PDF文件位置";
internal const string PageNumber = "页数";
internal const string Title = "标题";
internal const string Author = "作者";
internal const string Subject = "主题";
internal const string Keywords = "关键字";
internal const string Creator = "创建程序";
internal const string Producer = "处理程序";
internal const string CreationDate = "创建日期";
internal const string ModDate = "最近修改日期";
internal const string MetaData = "XML元数据";
}
internal const string Version = "PDF版本";
internal const string Catalog = "文档编录";
internal const string Body = "正文内容";
internal const string DocumentBookmark = "文档书签";
#endregion
#region 阅读器设定
internal const string PageLayout = "页面布局";
internal static class PageLayoutType
{
internal static readonly string[] Names = { "保持不变",
"单页连续", "双页连续", "双页连续首页独置",
"单页", "双页", "双页首页独置" };
internal static readonly PdfName[] PdfNames = { PdfName.NONE,
PdfName.ONECOLUMN, PdfName.TWOCOLUMNLEFT, PdfName.TWOCOLUMNRIGHT,
PdfName.SINGLEPAGE, PdfName.TWOPAGELEFT, PdfName.TWOPAGERIGHT };
}
internal const string PageMode = "初始模式";
internal static class PageModes
{
internal static readonly string[] Names = { "保持不变",
"不显示边栏", "显示文档书签", "显示页面缩略图",
"全屏显示", "显示可选内容组", "显示附件栏" };
internal static readonly PdfName[] PdfNames = { PdfName.NONE,
PdfName.USENONE, PdfName.USEOUTLINES, PdfName.USETHUMBS,
PdfName.FULLSCREEN, PdfName.USEOC, PdfName.USEATTACHMENTS };
}
internal const string ViewerPreferences = "阅读器设定";
internal static class ViewerPreferencesType
{
internal static readonly string[] Names = { "隐藏菜单", "隐藏工具栏",
"只显示文档内容", "窗口适合文档首页",
"窗口居中", "显示文档标题" };
internal static readonly PdfName[] PdfNames = { PdfName.HIDEMENUBAR, PdfName.HIDETOOLBAR,
PdfName.HIDEWINDOWUI, PdfName.FITWINDOW,
PdfName.CENTERWINDOW, PdfName.DISPLAYDOCTITLE };
internal const string Direction = "阅读方向";
internal static class DirectionType
{
internal static readonly string[] Names = { "保持不变", "从左到右", "从右到左" };
internal static readonly PdfName[] PdfNames = { PdfName.NONE, PdfName.L2R, PdfName.R2L };
}
}
#endregion
#region 页码样式
internal const string PageLabels = "页码样式";
internal static class PageLabelStyles
{
internal static readonly string[] Names = { "数字", "大写罗马数字", "小写罗马数字", "大写英文字母", "小写英文字母" };
internal static readonly char[] PdfValues = { 'D', 'R', 'r', 'A', 'a' };
internal static readonly char[] SimpleInfoIdentifiers = { '0', 'I', 'i', 'A', 'a' };
internal static readonly int[] Values = { PdfPageLabels.DECIMAL_ARABIC_NUMERALS,
PdfPageLabels.UPPERCASE_ROMAN_NUMERALS, PdfPageLabels.LOWERCASE_ROMAN_NUMERALS,
PdfPageLabels.UPPERCASE_LETTERS, PdfPageLabels.LOWERCASE_LETTERS
};
}
internal static class PageLabelsAttributes
{
internal const string PageNumber = "实际页码";
internal const string StartPage = "起始页码";
internal const string Prefix = "页码前缀";
internal const string Style = "样式";
}
#endregion
#region 页面内容
internal static class Content
{
internal const string Page = "页面";
internal const string PageNumber = "页码";
internal const string ResourceID = "资源编号";
internal const string RefType = "引用对象类型";
internal const string Texts = "文本内容";
internal const string Operators = "命令";
internal const string Operands = "参数";
internal const string Name = "名称";
internal const string Item = "项目";
internal const string Path = "路径";
internal const string Type = "类型";
internal const string Length = "长度";
internal const string Raw = "原始内容";
internal const string Value = "值";
internal static class PageSettings
{
internal const string ThisName = "页面设置";
internal const string MediaBox = "页面边框";
internal const string CropBox = "截取边框";
internal const string TrimBox = "裁剪边框";
internal const string ArtBox = "内容边框";
internal const string BleedBox = "出血边框";
internal const string Rotation = "旋转角度";
}
internal static class OperandNames
{
internal const string Matrix = "矩阵";
internal const string ResourceName = "资源名称";
internal const string Size = "尺寸";
internal const string Text = "文本";
}
internal static class RotationDirections
{
internal const string ThisName = PageSettings.Rotation;
internal const string Zero = "保持不变";
internal const string Right = "顺时针90度";
internal const string HalfClock = "180度";
internal const string Left = "逆时针90度";
internal static readonly string[] Names = { Zero, Right, HalfClock, Left };
internal static readonly int[] Values = { 0, 90, 180, 270 };
}
}
#endregion
#region 页码范围
internal const string PageRange = "页码范围";
internal static class PageFilterTypes
{
internal const string ThisName = "页码筛选";
internal const string AllPages = "所有页";
internal static readonly string[] Names = { AllPages, "单数页", "双数页" };
internal static readonly int[] Values = { -1, 1, 0 };
}
#endregion
#region 目标
internal const string NamedDestination = "命名位置";
internal static class DestinationAttributes
{
internal const string Page = "页码";
internal const string FirstPageNumber = "首页页码";
internal const string Action = "动作";
internal const string NewWindow = "新窗口";
internal const string Path = "路径";
internal const string Name = "名称";
internal const string Named = "命名位置";
internal const string NamedN = "PDF名称";
internal const string View = "显示方式";
internal const string ScriptContent = "脚本内容";
internal static class ViewType
{
internal const string XYZ = "坐标缩放";
internal const string Fit = "适合页面";
internal const string FitH = "适合页宽";
internal const string FitV = "适合页高";
internal const string FitB = "适合窗口";
internal const string FitBH = "适合窗口宽度";
internal const string FitBV = "适合窗口高度";
internal const string FitR = "适合区域";
internal static readonly string[] Names = { XYZ, Fit, FitH, FitV, FitB, FitBH, FitBV, FitR };
internal static readonly PdfName[] PdfNames = { PdfName.XYZ, PdfName.FIT, PdfName.FITH, PdfName.FITV, PdfName.FITB, PdfName.FITBH, PdfName.FITBV, PdfName.FITR };
}
}
internal static class ActionType
{
internal const string Goto = "转到页面";
internal const string GotoR = "打开外部PDF文档";
internal const string Launch = "启动程序";
internal const string Uri = "打开网址";
internal const string Javascript = "执行脚本";
internal static readonly string[] Names = { Goto, GotoR, Launch, Uri, Javascript };
internal static readonly PdfName[] PdfNames = { PdfName.GOTO, PdfName.GOTOR, PdfName.LAUNCH, PdfName.URI, PdfName.JAVASCRIPT };
}
#endregion
#region 书签
internal const string Bookmark = "书签";
internal static class BookmarkAttributes
{
internal const string Title = "文本";
internal const string Open = "默认打开";
internal const string Style = "样式";
internal static class StyleType
{
internal const string Normal = "常规";
internal const string Bold = "粗体";
internal const string BoldItalic = "粗斜体";
internal const string Italic = "斜体";
internal static readonly string[] Names = { Normal, Italic, Bold, BoldItalic };
}
}
internal const string Color = "颜色";
internal static class Colors
{
internal const string Red = "红";
internal const string Green = "绿";
internal const string Blue = "蓝";
internal const string Gray = "灰度";
internal const string Transparent = "透明";
internal const string Cyan = "青";
internal const string Magenta = "紫";
internal const string Yellow = "黄";
internal const string Black = "黑";
}
internal static class Boolean
{
internal const string True = "是";
internal const string False = "否";
}
#endregion
#region 页面链接
internal const string PageLink = "页面链接";
internal static class PageLinkAttributes
{
internal const string Link = "链接";
internal const string LinkAction = "链接动作";
internal const string PageNumber = "页码";
internal const string Border = "边框";
internal const string Style = "点击效果";
internal const string QuadPoints = "四边形坐标";
internal const string Contents = "文本";
}
#endregion
#region 光学字符识别
internal static class Ocr
{
internal const int NoLanguage = 0;
internal const int SimplifiedChineseLangID = 2052;
internal const int TraditionalChineseLangID = 1028;
internal const int JapaneseLangID = 1041;
internal const int KoreanLangID = 1042;
internal const int EnglishLangID = 1033;
internal const int DanishLangID = 1030;
internal const int DutchLangID = 1043;
internal const int FinnishLangID = 1035;
internal const int FrenchLangID = 1036;
internal const int GermanLangID = 1031;
internal const int ItalianLangID = 1040;
internal const int NorskLangID = 1044;
internal const int PortugueseLangID = 1046;
internal const int SpanishLangID = 3082;
internal const int SwedishLangID = 1053;
internal const int CzechLangID = 1029;
internal const int PolishLangID = 1045;
internal const int HungarianLangID = 1038;
internal const int GreekLangID = 1032;
internal const int RussianLangID = 1049;
internal const int TurkishLangID = 1055;
internal static int[] LangIDs = { SimplifiedChineseLangID, TraditionalChineseLangID, EnglishLangID, JapaneseLangID, KoreanLangID, DanishLangID, DutchLangID, FinnishLangID, FrenchLangID, GermanLangID, ItalianLangID, NorskLangID, PortugueseLangID, SpanishLangID, SwedishLangID, CzechLangID, PolishLangID, HungarianLangID, GreekLangID, RussianLangID, TurkishLangID };
internal static int[] OcrLangIDs = { SimplifiedChineseLangID, TraditionalChineseLangID, 9, 17, 18, 6, 19, 11, 12, 7, 16, 20, 22, 10, 29, 5, 21, 14, 8, 25, 31 };
internal static string[] LangNames = { "简体中文", "繁体中文", "英文", "日文", "韩文", "丹麦文", "荷兰文", "芬兰文", "法文", "德文", "意大利文", "挪威文", "葡萄牙文", "西班牙文", "瑞典文", "捷克文", "波兰文", "匈牙利文", "希腊文", "俄文", "土耳其文" };
internal const string Result = "识别结果";
internal const string Text = "文本";
internal const string Content = "内容";
internal const string Image = "图片";
}
#endregion
#region 字体属性
internal static class Font
{
internal const string ThisName = "字体";
internal const string DocumentFont = "文档字体";
internal const string ID = "编号";
internal const string Name = "名称";
internal const string Size = "文本尺寸";
}
internal static class FontOccurance
{
internal const string Count = "出现次数";
internal const string FirstText = "首次出现文本";
internal const string FirstPage = "首次出现页码";
}
#endregion
#region 导出为图片
internal static class ColorSpaces
{
internal const string Rgb = "DeviceRGB";
internal const string Bgr = "DeviceBGR";
internal const string Cmyk = "DeviceCMYK";
internal const string Gray = "DeviceGray";
internal static string[] Names = { Rgb, Gray };
}
#endregion
#region 超星命名规则
internal static class CajNaming
{
internal const string Cover = "cov";
internal const string TitlePage = "bok";
internal const string CopyrightPage = "leg";
internal const string Foreword = "fow";
internal const string Contents = "!";
}
#endregion
internal static class AutoBookmark
{
internal const string ThisName = "自动书签";
internal const string Group = "条件集合";
internal const string Name = "名称";
internal const string Description = "说明";
internal const string IsInclusive = "正向过滤";
}
}
internal static class Messages
{
internal const string Welcome = "PDF 补丁丁——解除 PDF 文档的烦恼";
internal const string SourceFileNotFound = "源 PDF 文件不存在,请先指定有效的源 PDF 文件。";
internal const string InfoDocNotFound = "信息文件不存在,请先指定有效的信息文件。";
internal const string TargetFileNotSpecified = "请指定输出 PDF 文件的路径。";
internal const string InfoDocNotSpecified = "请指定输出信息文件的路径。";
internal const string SourceFileNameInvalid = "源 PDF 文件名无效。";
internal const string TargetFileNameInvalid = "输出 PDF 文件名无效。";
internal const string InfoFileNameInvalid = "信息文件的文件名无效。";
internal const string SourceFileEqualsTargetFile = "输入 PDF 文件和输出 PDF 文件的文件名不能相同。";
internal const string PasswordInvalid = "输入的密码错误,无法打开 PDF 文档。";
internal const string UserRightRequired = "此 PDF 文件的作者设置了修改文件的权限控制。\n如果您继续操作,您必须得到创建者对该文档进行修改的授权。\n如果您不能保证自己有权修改此文档,请按“否”键退出,否则您需要承担修改此文档带来的一切责任。";
internal const string PageRanges = "在此输入需要处理的页码范围。\n如:“1-100”表示处理第1~100页。\n如有多个页码范围,可用空格、分号或逗号分开。\n如:“1-10;12;14-20”表示处理1~10、12和14~20页。";
internal const string ReversePageRanges = "此外还可以输入逆序页码,如“100-1”表示从第100页开始倒序处理至第1页。";
internal const string ModiNotAvailable = "本机尚未安装微软文本识别组件(MODI),无法使用识别文本功能。";
}
}