//EPUBファイルを書き出す private void ArchiveEpubClick(object sender, RoutedEventArgs e) { //ボタンの表示をEpub生成中にする var btn = sender as Button; btn.IsEnabled = false; btn.Content = "EPUBを生成しています"; //バックアップファイルを作成する var backFileName = Path.ChangeExtension(epubFile, ".bak"); if (File.Exists(backFileName) == true) //バックアップファイルが既にあったので削除する { File.Delete(backFileName); } File.Move(epubFile, backFileName); //Epubファイルをバックアップファイルにする //Epubファイルを書き出す PostProcess.executeEpubCheck = useEpubCheck.IsChecked; //後処理を設定する PostProcess.executeKindePreViewer = execKindlePreviewer.IsChecked; //Epubファイルを出力する Archiver.ArchiveEpubWithPostProcess(tempDir, epubFile); //ボタンの表示を戻す btn.IsEnabled = true; btn.Content = "EPUBを生成する"; }
private void GenerateEpub_Click(object sender, RoutedEventArgs e) { //ボタンの表示をEpub生成中にする var btn = sender as Button; btn.IsEnabled = false; btn.Content = "EPUBを生成しています"; //EPUBのディレクトリをデフォルト値に設定する Properties.Settings.Default.epubDirDefault = ePubDirPathTextBox.Text; Properties.Settings.Default.Save(); //後処理設定を読み込む PostProcess.executeEpubCheck = useEpubCheck.IsChecked; //EpubCheck PostProcess.executeKindePreViewer = execKindlePreviewer.IsChecked; //KindlePreviewer //Epubを生成する var srcDir = ePubDirPathTextBox.Text; var dstFile = srcDir + ".epub"; Archiver.ArchiveEpubWithPostProcess(srcDir, dstFile); //ボタンの表示を戻す btn.IsEnabled = true; btn.Content = "EPUBを生成する"; }
//テンプレートからEpubファイルを作成する public bool GenerateEpubDocument() { //ファイルの上書きを確認する var epubFileName = GetEpubFileName(); if (File.Exists(epubFileName)) { var overwrite = MessageBox.Show("ファイルを上書きしますか?", "Nov2Epub", MessageBoxButton.OKCancel); if (overwrite == MessageBoxResult.OK) { File.Delete(epubFileName); } else //上書きしないならそのまま終了 { return(false); } } //テンプレートファイルをテンポラリディレクトリにコピーする var templateDir = GetTemplateDirectory(); //テンプレートディレクトリ var tempDir = Path.GetTempPath(); //テンポラリディレクトリ var epubDirName = Path.Combine(tempDir, Path.GetFileNameWithoutExtension(Path.GetRandomFileName())); //ランダム CopyDirectory(templateDir, epubDirName); //コピーする //パッケージドキュメントを更新する var packFile = ContainerXML.GetPackageDocument(epubDirName); PackageDocument.WriteMetaData(packFile, metaData); //表紙ファイルを更新する var coverImageDst = Path.Combine(epubDirName, @"OEBPS\Images\Cover.JPG"); File.Copy(coverImageFileName, coverImageDst, true); //扉ページを更新する var titlePageDst = Path.Combine(epubDirName, @"OEBPS\Text\Title.xhtml"); InfoPage.UpdateTitlePage(titlePageDst, metaData); //テキストを更新する var textTemplateFile = Path.Combine(epubDirName, @"OEBPS\Text\Text.xhtml"); var headerAnchors = TextConverter.ConvertText(novelFileName, textTemplateFile, opt); //本文の縦書き/横書きをCSSに設定する var textCssTemplateFile = Path.Combine(epubDirName, @"OEBPS\Styles\Text.css"); TextStyleSheet.SetOrientationStyle(textCssTemplateFile, metaData.isVertical); //目次の縦書き/横書きをCSSに設定する var navCssTemplateFile = Path.Combine(epubDirName, @"OEBPS\Styles\Nav.css"); TextStyleSheet.SetOrientationStyle(navCssTemplateFile, metaData.isVertical); //ナビゲーションドキュメントを作成する var navFileName = Path.Combine(epubDirName, @"OEBPS\Text\nav.xhtml"); NavigationDocument.WriteNavigationDocument(navFileName, headerAnchors); //奥付ページを更新する var ColophonPage = Path.Combine(epubDirName, @"OEBPS\Text\Colophon.xhtml"); InfoPage.UpdateTitlePage(ColophonPage, metaData); //不要ファイルを削除する var thumbsFile = Path.Combine(epubDirName, @"OEBPS\Images\Thumbs.db"); if (File.Exists(thumbsFile) == true) { File.Delete(thumbsFile); } //EPubファイルを作成する Archiver.ArchiveEpubWithPostProcess(epubDirName, epubFileName); //テンポラリディレクトリを削除する Directory.Delete(epubDirName, true); //Identifierを更新する IdentifierDictionary.SaveIdentifierDictionary(); return(true); }