■内容
excelからpdfに変換するとオブジェクトがずれます。
なにかいい対策はありませんでしょうか?
■実際のファイル(excel,pdf)
https://drive.google.com/drive/folders/1XfqnfPggnvPymE223VMUYVX-oyCOlynF?usp=drive_link
■ソース(Program.cs)
using System;
using System.IO;
using System.Diagnostics;
using System.Threading.Tasks;
using Aspose.Cells;
using NLog;
class Program
{
private static readonly Logger logger = LogManager.GetCurrentClassLogger();
static void Main(string[] args)
{
// 実行ディレクトリ取得
string baseDir = AppDomain.CurrentDomain.BaseDirectory;
string logDir = Path.Combine(baseDir, "logs");
if(!Directory.Exists(logDir)) {
Directory.CreateDirectory(logDir); // 起動時に1回だけでOK
}
if (args.Length == 0)
{
logger.Info("Excelファイルのあるフォルダを指定してください。");
return;
}
string inputFolder = args[0];
if (!Directory.Exists(inputFolder))
{
logger.Info($"指定されたフォルダが存在しません: {inputFolder}");
return;
}
var sw = new Stopwatch();
sw.Start();
logger.Info($"処理開始: {inputFolder}");
var files = Directory.GetFiles(inputFolder, "*.xlsx");
Parallel.ForEach(files, file =>
{
try
{
logger.Info($"変換開始: {Path.GetFileName(file)}");
var workbook = new Workbook(file);
string outputFile = Path.ChangeExtension(file, ".pdf");
// 出力ファイルに保存
workbook.Save(outputFile);
logger.Info($"変換成功: {Path.GetFileName(outputFile)}");
}
catch (Exception ex)
{
logger.Error(ex, $"変換失敗: {file}");
}
});
sw.Stop();
logger.Info($"PDF変換処理完了: {inputFolder}\t{sw.Elapsed.Hours}時間 {sw.Elapsed.Minutes}分 {sw.Elapsed.Seconds}秒 {sw.Elapsed.Milliseconds}ミリ秒");
}
}