Example #1
0
        public FileInfoChangeResult ChangeFIleInfo(string filePath, BookInfo changeInfo, PDFFileChangeSetting changeSetting)
        {
            var res = new FileInfoChangeResult();

            try
            {
                var doc = PdfReader.Open(filePath, PdfDocumentOpenMode.Modify);

                var changeData = RenameInfo.GetReplaceParam(changeInfo);
                doc.Info.Title    = EncodingUnicode(GetChanedData(changeSetting.Title, changeData));
                doc.Info.Author   = EncodingUnicode(GetChanedData(changeSetting.Author, changeData));
                doc.Info.Keywords = EncodingUnicode(GetChanedData(changeSetting.Keyword, changeData));
                doc.Info.Subject  = EncodingUnicode(GetChanedData(changeSetting.SubTitle, changeData));
                //出版年
                var time = DateTime.Now;
                if (DateTime.TryParse(GetChanedData(changeSetting.CreationDate, changeData), out time))
                {
                    doc.Info.CreationDate = time;
                }


                doc.Save(filePath);

                res.IsSuccess = true;
            }
            catch (Exception e)
            {
                res.IsSuccess = false;
                res.Message   = e.ToString();
            }

            return(res);
        }
        public ConvertInfo RenameBookFile(string file, BookInfo renameInfo, string renameRule)
        {
            var repName = string.Empty;

            if (File.Exists(file) && !string.IsNullOrWhiteSpace(renameRule))
            {
                try
                {
                    var ext      = Path.GetExtension(file);
                    var basedir  = Path.GetDirectoryName(file);
                    var repParam = RenameInfo.GetReplaceParam(renameInfo);
                    repName = CommonStringReplace.GetReplaceString(renameRule, repParam) + ext;

                    //禁則文字は_置換する
                    var invalidChars = System.IO.Path.GetInvalidFileNameChars();
                    foreach (var ire in invalidChars)
                    {
                        repName = repName.Replace(ire, '_');
                    }
                    //重複時にはカウントアップ
                    var savePath = FileUtil.GetUniqueFilename(Path.Combine(basedir, repName));
                    repName = Path.GetFileName(savePath);

                    File.Move(file, savePath);
                    return(new ConvertInfo()
                    {
                        BeforeFileName = file, AfterFileName = repName, Message = "", IsReaNameSuccess = true, AfterFullPath = savePath
                    });
                }
                catch (Exception e)
                {
                    return(new ConvertInfo()
                    {
                        BeforeFileName = file, AfterFileName = repName, Message = e.ToString(), IsReaNameSuccess = false
                    });
                }
            }
            return(new ConvertInfo()
            {
                BeforeFileName = file, AfterFileName = repName, Message = "リネーム失敗", IsReaNameSuccess = false
            });
        }