|
@@ -18,6 +18,7 @@ using Prism.Services.Dialogs;
|
|
|
using System;
|
|
|
using System.Collections.Generic;
|
|
|
using System.Collections.ObjectModel;
|
|
|
+using System.Diagnostics;
|
|
|
using System.IO;
|
|
|
using System.Linq;
|
|
|
using System.Reflection;
|
|
@@ -336,9 +337,19 @@ namespace PDF_Master.ViewModels.Dialog.ToolsDialogs
|
|
|
List<int> listnum = new List<int>();
|
|
|
if (MergeObjectlist[i].SetPageRange == null || MergeObjectlist[i].SetPageRange.Count == 0)
|
|
|
{
|
|
|
- AlertsMessage alertsMessage = new AlertsMessage();
|
|
|
- alertsMessage.ShowDialog("", App.MainPageLoader.GetString("PageRangeWarning"), App.ServiceLoader.GetString("Text_ok"));
|
|
|
- return;
|
|
|
+ if (MergeObjectlist[i].SDKPageCount == 0) {
|
|
|
+ mergeObject.SetPageRange = pageRangeList;
|
|
|
+ AlertsMessage alertsMessage = new AlertsMessage();
|
|
|
+ alertsMessage.ShowDialog("", App.MainPageLoader.GetString("PageRangeWarning"), App.ServiceLoader.GetString("Text_ok"));
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ List<int> pageRangeList = new List<int>();
|
|
|
+ for (int page1 = 0; page1 < MergeObjectlist[i].SDKPageCount; page1++)
|
|
|
+ {
|
|
|
+ pageRangeList.Add(page1);
|
|
|
+ }
|
|
|
+ MergeObjectlist[i].SetPageRange = pageRangeList;
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -355,46 +366,61 @@ namespace PDF_Master.ViewModels.Dialog.ToolsDialogs
|
|
|
{
|
|
|
if (Path.GetExtension(MergeObjectlist[i].FilePath).Trim().ToLower() == ".gif")
|
|
|
{//GIF下面方法产生虚影改成与图片转PDF一致
|
|
|
- System.Drawing.Image img = System.Drawing.Image.FromFile(MergeObjectlist[i].FilePath);
|
|
|
- string tempFileName = Path.GetTempPath() + "pngtemp.jpg";
|
|
|
- if (!PictureConverter.SaveJpeg(MergeObjectlist[i].FilePath, tempFileName))
|
|
|
+ try
|
|
|
{
|
|
|
- MessageBoxEx.Show("图片格式有问题");
|
|
|
+ System.Drawing.Image img = System.Drawing.Image.FromFile(MergeObjectlist[i].FilePath);
|
|
|
+ string tempFileName = Path.GetTempPath() + "pngtemp.jpg";
|
|
|
+ if (!PictureConverter.SaveJpeg(MergeObjectlist[i].FilePath, tempFileName))
|
|
|
+ {
|
|
|
+ MessageBoxEx.Show("图片格式有问题");
|
|
|
+ }
|
|
|
+ // 之前插入位置为零点导致插入为第一页,改为尾插 2023/5/24
|
|
|
+ result = SaveDoc.InsertPage(SaveDoc.PageCount, img.Width, img.Height, tempFileName);
|
|
|
+ try { if (File.Exists(tempFileName)) File.Delete(tempFileName); }
|
|
|
+ catch
|
|
|
+ { }
|
|
|
+ if (!result)
|
|
|
+ {
|
|
|
+ SaveDoc.Release();
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ continue;
|
|
|
}
|
|
|
- // 之前插入位置为零点导致插入为第一页,改为尾插 2023/5/24
|
|
|
- result = SaveDoc.InsertPage(SaveDoc.PageCount, img.Width, img.Height, tempFileName);
|
|
|
- try { if (File.Exists(tempFileName)) File.Delete(tempFileName); }
|
|
|
catch
|
|
|
- { }
|
|
|
- if (!result)
|
|
|
{
|
|
|
- SaveDoc.Release();
|
|
|
- return;
|
|
|
- }
|
|
|
- continue;
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- BitmapSource frame = MergeObjectlist[i].DocThumbnail;
|
|
|
- byte[] imageData = new byte[frame.PixelWidth * frame.PixelHeight * 4];
|
|
|
- if (frame.Format != PixelFormats.Bgra32)
|
|
|
- {
|
|
|
- FormatConvertedBitmap covert = new FormatConvertedBitmap(frame, PixelFormats.Bgra32, frame.Palette, 0);
|
|
|
- covert.CopyPixels(imageData, frame.PixelWidth * 4, 0);
|
|
|
- }
|
|
|
- else
|
|
|
+ try
|
|
|
{
|
|
|
+ BitmapSource frame = MergeObjectlist[i].DocThumbnail;
|
|
|
+ byte[] imageData = new byte[frame.PixelWidth * frame.PixelHeight * 4];
|
|
|
+ if (frame.Format != PixelFormats.Bgra32)
|
|
|
+ {
|
|
|
+ FormatConvertedBitmap covert = new FormatConvertedBitmap(frame, PixelFormats.Bgra32, frame.Palette, 0);
|
|
|
+ covert.CopyPixels(imageData, frame.PixelWidth * 4, 0);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ frame.CopyPixels(imageData, frame.PixelWidth * 4, 0);
|
|
|
+ }
|
|
|
frame.CopyPixels(imageData, frame.PixelWidth * 4, 0);
|
|
|
+ // 之前插入位置为零点导致插入为第一页,改为尾插 2023/5/24
|
|
|
+ result = SaveDoc.InsertPage(SaveDoc.PageCount, frame.PixelWidth, frame.PixelHeight, imageData, CPDFDocumentImageMode.CPDFDocumentImageModeScaleToFill);
|
|
|
+ if (!result)
|
|
|
+ {
|
|
|
+ SaveDoc.Release();
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ continue;
|
|
|
}
|
|
|
- frame.CopyPixels(imageData, frame.PixelWidth * 4, 0);
|
|
|
- // 之前插入位置为零点导致插入为第一页,改为尾插 2023/5/24
|
|
|
- result = SaveDoc.InsertPage(SaveDoc.PageCount, frame.PixelWidth, frame.PixelHeight, imageData, CPDFDocumentImageMode.CPDFDocumentImageModeScaleToFill);
|
|
|
- if (!result)
|
|
|
+ catch
|
|
|
{
|
|
|
- SaveDoc.Release();
|
|
|
- return;
|
|
|
+ continue;
|
|
|
}
|
|
|
- continue;
|
|
|
}
|
|
|
}
|
|
|
else
|
|
@@ -599,6 +625,7 @@ namespace PDF_Master.ViewModels.Dialog.ToolsDialogs
|
|
|
mergeObject.DocName = Path.GetFileName(mergeObject.FilePath);
|
|
|
mergeObject.DocPageCount = 1 + " " + App.MainPageLoader.GetString("Merge_ItemPages");
|
|
|
mergeObject.SDKPageCount = 1;
|
|
|
+ mergeObject.SetPageRange = new List<int>() { 0 };
|
|
|
mergeObject.DocSize = CommonHelper.GetFileSize(mergeObject.FilePath);
|
|
|
try
|
|
|
{
|
|
@@ -690,6 +717,7 @@ namespace PDF_Master.ViewModels.Dialog.ToolsDialogs
|
|
|
mergeObject.IsEvenPageIsEnabled = false;
|
|
|
}
|
|
|
mergeObject.SDKPageCount = doc.PageCount;
|
|
|
+
|
|
|
mergeObject.DocSize = CommonHelper.GetFileSize(mergeObject.FilePath);
|
|
|
|
|
|
//获取第一页缩略图
|
|
@@ -712,7 +740,8 @@ namespace PDF_Master.ViewModels.Dialog.ToolsDialogs
|
|
|
CurrentValue = i;
|
|
|
UpDataMergeObjectIndex();
|
|
|
}
|
|
|
- ProcessVisible = Visibility.Collapsed;
|
|
|
+ ProcessVisible = Visibility.Collapsed;
|
|
|
+
|
|
|
if (showDialog)
|
|
|
{
|
|
|
AlertsMessage alertsMessage = new AlertsMessage();
|