mirror of
https://github.com/wmjordan/PDFPatcher.git
synced 2026-10-18 13:42:28 +08:00
128 lines
3.8 KiB
C#
128 lines
3.8 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Xml.Serialization;
|
|
using PDFPatcher.Model;
|
|
|
|
namespace PDFPatcher
|
|
{
|
|
public class MergerOptions : DocumentOptions
|
|
{
|
|
public MergerOptions() {
|
|
AutoBookmarkTitle = true;
|
|
AutoMaskBWImages = true;
|
|
AutoScaleDown = true;
|
|
FullCompression = true;
|
|
IgnoreLeadingNumbers = true;
|
|
KeepBookmarks = true;
|
|
NumericAwareSort = true;
|
|
RemoveOrphanBookmarks = true;
|
|
PageSettings = new PageBoxSettings();
|
|
}
|
|
|
|
[XmlElement("页面布局")]
|
|
public PageBoxSettings PageSettings { get; set; }
|
|
|
|
///<summary>获取或指定是否自动缩小图片以适合页面。</summary>
|
|
[XmlAttribute("自动缩小")]
|
|
[DefaultValue(true)]
|
|
public bool AutoScaleDown { get; set; }
|
|
|
|
///<summary>获取或指定是否自动放大图片以填满页面。</summary>
|
|
[XmlAttribute("自动放大")]
|
|
[DefaultValue(false)]
|
|
public bool AutoScaleUp { get; set; }
|
|
|
|
[XmlAttribute("压缩冗余数据")]
|
|
[DefaultValue(false)]
|
|
public bool Deduplicate { get; set; }
|
|
|
|
/// <summary>
|
|
/// 获取页面除去上下留白的高度。
|
|
/// </summary>
|
|
[XmlIgnore]
|
|
public float ContentHeight {
|
|
get {
|
|
var ps = PageSettings;
|
|
return ps.PaperSize.Height - ps.Margins.Top - ps.Margins.Bottom;
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// 获取页面除去左右留白的宽度。
|
|
/// </summary>
|
|
[XmlIgnore]
|
|
public float ContentWidth {
|
|
get {
|
|
var ps = PageSettings;
|
|
return ps.PaperSize.Width - ps.Margins.Left - ps.Margins.Right;
|
|
}
|
|
}
|
|
|
|
[XmlAttribute("水平DPI")]
|
|
public int DpiX { get; set; }
|
|
|
|
[XmlAttribute("垂直DPI")]
|
|
public int DpiY { get; set; }
|
|
|
|
[XmlAttribute("校正图片旋转角度")]
|
|
public bool DeskewImages { get; set; }
|
|
|
|
[XmlAttribute("优化黑白图片压缩算法")]
|
|
public bool RecompressWithJbig2 { get; set; }
|
|
|
|
///<summary>获取或指定是否为黑白图片自动设为透明(在阅读器中不能用图像工具选中)。</summary>
|
|
[XmlAttribute("黑白图片自动透明")]
|
|
public bool AutoMaskBWImages { get; set; }
|
|
|
|
#region 文件列表选项
|
|
///<summary>获取或指定排序文件时是否按数值和文本排序。</summary>
|
|
[XmlAttribute("按数值排序文件")]
|
|
[DefaultValue(true)]
|
|
public bool NumericAwareSort { get; set; }
|
|
|
|
///<summary>获取或指定排序文件时是否按超星阅读器的文件命名排序。</summary>
|
|
[XmlAttribute("按超星阅读器排序文件")]
|
|
[DefaultValue(false)]
|
|
public bool CajSort { get; set; }
|
|
|
|
///<summary>获取或指定添加目录时是否将子目录排列在文件前面。</summary>
|
|
[XmlAttribute("子目录")]
|
|
[DefaultValue(SubFolderPosition.BeforeFiles)]
|
|
public SubFolderPosition SubFolder { get; set; }
|
|
#endregion
|
|
|
|
#region 自动生成书签选项
|
|
///<summary>获取或指定忽略文件名的前导数值。</summary>
|
|
[XmlAttribute("自动生成书签文本")]
|
|
[DefaultValue(true)]
|
|
public bool AutoBookmarkTitle { get; set; }
|
|
|
|
///<summary>获取或指定忽略文件名的前导数值。</summary>
|
|
[XmlAttribute("忽略前导数字")]
|
|
[DefaultValue(true)]
|
|
public bool IgnoreLeadingNumbers { get; set; }
|
|
|
|
///<summary>获取或指定是否保留 PDF 文档的书签。</summary>
|
|
[XmlAttribute("保留书签")]
|
|
[DefaultValue(true)]
|
|
public bool KeepBookmarks { get; set; }
|
|
|
|
///<summary>获取或指定是否删除没有目标(页面失效)的书签。</summary>
|
|
[XmlAttribute("删除失效书签")]
|
|
[DefaultValue(true)]
|
|
public bool RemoveOrphanBookmarks { get; set; }
|
|
|
|
///<summary>获取或指定是否在单页PDF源文档后附加一页空白页使之成为双数页(以便双面打印)。</summary>
|
|
[XmlAttribute("单页PDF附加空白页")]
|
|
public bool ExtraEmptyPageForOddPdf { get; set; }
|
|
#endregion
|
|
|
|
public enum SubFolderPosition
|
|
{
|
|
BeforeFiles,
|
|
WithFiles,
|
|
Exclude
|
|
}
|
|
}
|
|
}
|