mirror of
https://github.com/wmjordan/PDFPatcher.git
synced 2026-10-18 13:42:28 +08:00
40 lines
1.3 KiB
C#
40 lines
1.3 KiB
C#
using System;
|
|
using CLR;
|
|
using MuPDF;
|
|
using MuPDF.Extensions;
|
|
using PDFPatcher.Common;
|
|
|
|
namespace PDFPatcher.Functions.Editor;
|
|
|
|
/// <summary>
|
|
/// 更改书签编辑栏的字体(第1个参数)和尺寸(第2个参数)
|
|
/// </summary>
|
|
sealed class ApplyBookmarkOptionCommand : IEditorCommand
|
|
{
|
|
public void Process(Controller context, params string[] parameters) {
|
|
var bookmark = context.View.Bookmark;
|
|
var viewer = context.View.Viewer;
|
|
var currFont = bookmark.Font;
|
|
var option = AppContext.Reader;
|
|
|
|
var font = option.BookmarkFont;
|
|
var fontSize = option.BookmarkFontSize != 0 ? option.BookmarkFontSize.Clamp(7f, 72f) : 0;
|
|
var keepFont = font.IsNullOrWhiteSpace() || bookmark.Font.FontFamily.Name == font;
|
|
var keepSize = fontSize == 0 || Math.Abs(fontSize - currFont.Size) < 1f;
|
|
if (!keepFont || !keepSize) {
|
|
bookmark.Font = new System.Drawing.Font(keepFont ? currFont.FontFamily.Name : font,
|
|
keepSize ? currFont.Size : fontSize);
|
|
}
|
|
|
|
var doc = context.Model.PdfDocument;
|
|
if (doc is not null) {
|
|
context.View.MainPanel.Panel1Collapsed = AppContext.Reader.BookmarkState switch {
|
|
BookmarkState.Auto => !doc.Trailer.Locate(PdfNames.Root, PdfNames.Outlines).IsDictionary,
|
|
BookmarkState.Show => false,
|
|
BookmarkState.Hide => true,
|
|
_ => false
|
|
};
|
|
}
|
|
}
|
|
}
|