c# PDFSharpを使用してPDFファイルのページを左右反転(鏡像化)させたいと考えています。
PDFSharpを使用したいのはMITライセンスだからです。
画像および文字列すべて含んだ形で左右反転(鏡像化)させる方法を教えてください。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
ベストアンサー
あきらめていたのですができてしまいました。
パスワード付きや暗号化?されているとPDFsharpが開けずエラーになります(web上にあるものって結構パスワード付いてるんですね)
PDFsharpで作ったもの以外にもいくつかやってみましたが、ミラー化できました。
Google Chromeで見たときにページ送り?(元は横に矢印が出てるのに縦スクロールになる)が違ってしまうpdfがありましたがよくわかりません。
参考
PDFsharp Sample: Two Pages on One - PDFsharp and MigraDoc Wiki
cs
1using System.Diagnostics; 2using PdfSharp.Drawing; 3using PdfSharp.Pdf; 4 5namespace Questions226967 6{ 7 class Program 8 { 9 /// <summary>PDFを鏡像化して保存します</summary> 10 /// <param name="inputFilePath">元になるファイルパス</param> 11 /// <param name="outputFilePath">鏡像化したファイルパス</param> 12 static void MirrorPdf(string inputFilePath, string outputFilePath) 13 { 14 XPdfForm form = XPdfForm.FromFile(inputFilePath); // XPdfFormがポイント 15 PdfDocument output = new PdfDocument(); 16 17 for(int i = 0; i < form.PageCount; i++) 18 { 19 form.PageNumber = i + 1; 20 PdfPage page = output.AddPage(); 21 page.Width = form.Page.Width; 22 page.Height = form.Page.Height; 23 24 XRect box = new XRect(0, 0, page.Width, page.Height); 25 XGraphics gfx = XGraphics.FromPdfPage(page); 26 27 gfx.TranslateTransform(page.Width, 0); 28 gfx.ScaleTransform(-1, 1); 29 gfx.DrawImage(form, box); 30 } 31 32 output.Save(outputFilePath); 33 } 34 // 単に入力用のpdfを作っているだけ 35 static void SamplePdf(string outputFilePath) 36 { 37 PdfDocument document = new PdfDocument(); 38 document.Info.Title = "Created with PDFsharp"; 39 XFont font = new XFont("Verdana", 20, XFontStyle.BoldItalic); 40 XImage image = XImage.FromFile(@"file_icon_text_pdf.png"); 41 PdfPage page = document.AddPage(); 42 XGraphics gfx = XGraphics.FromPdfPage(page); 43 gfx.DrawString("Hello, World!", font, XBrushes.Black, 44 new XRect(0, 0, page.Width, page.Height), XStringFormats.Center); 45 gfx.DrawImage(image, 0, 0); 46 document.Save(outputFilePath); 47 } 48 static void Main() 49 { 50 string input = @"HelloWorld.pdf"; 51 string output = "HelloWorld_Mirror.pdf"; 52 SamplePdf(input); 53 54 MirrorPdf(input, output); 55 Process.Start(output); 56 } 57 } 58}
投稿2019/12/03 11:49
編集2023/07/17 05:55総合スコア9855
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/12/04 14:12
2019/12/04 23:09
2019/12/05 04:44
2019/12/05 08:32
2019/12/07 08:26
2019/12/07 08:28
2019/12/07 08:42