123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307 |
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.IO;
- using System.Text;
- using System.Windows.Forms;
-
- namespace PdfiumViewer.Demo
- {
- public partial class MainForm : Form
- {
- public MainForm()
- {
- InitializeComponent();
-
- renderToBitmapsToolStripMenuItem.Enabled = false;
-
- pdfViewer1.Renderer.DisplayRectangleChanged += Renderer_DisplayRectangleChanged;
- pdfViewer1.Renderer.ZoomChanged += Renderer_ZoomChanged;
-
- cutMarginsWhenPrintingToolStripMenuItem.PerformClick();
-
- _zoom.Text = pdfViewer1.Renderer.Zoom.ToString();
-
- Disposed += (s, e) => { if (pdfViewer1.Document != null) { pdfViewer1.Document.Dispose(); } };
- }
-
- void Renderer_ZoomChanged(object sender, EventArgs e)
- {
- _zoom.Text = pdfViewer1.Renderer.Zoom.ToString();
- }
-
- void Renderer_DisplayRectangleChanged(object sender, EventArgs e)
- {
- _page.Text = (pdfViewer1.Renderer.Page + 1).ToString();
- }
-
- private void MainForm_Shown(object sender, EventArgs e)
- {
- var args = Environment.GetCommandLineArgs();
-
- if (args.Length > 1)
- {
- if (pdfViewer1.Document != null) { pdfViewer1.Document.Dispose(); }
- pdfViewer1.Document = OpenDocument(args[1]);
- renderToBitmapsToolStripMenuItem.Enabled = true;
- }
- else
- {
- OpenFile();
- }
-
- _showBookmarks.Checked = pdfViewer1.ShowBookmarks;
- _showToolbar.Checked = pdfViewer1.ShowToolbar;
- }
-
- private PdfDocument OpenDocument(string fileName)
- {
- try
- {
- return PdfDocument.Load(this, fileName);
- }
- catch (Exception ex)
- {
- MessageBox.Show(this, ex.Message, Text, MessageBoxButtons.OK, MessageBoxIcon.Error);
- return null;
- }
- }
-
- private void OpenFile()
- {
- using (var form = new OpenFileDialog())
- {
- form.Filter = "PDF Files (*.pdf)|*.pdf|All Files (*.*)|*.*";
- form.RestoreDirectory = true;
- form.Title = "Open PDF File";
-
- if (form.ShowDialog(this) != DialogResult.OK)
- {
- Dispose();
- return;
- }
-
- if (pdfViewer1.Document != null) { pdfViewer1.Document.Dispose(); }
- pdfViewer1.Document = OpenDocument(form.FileName);
- renderToBitmapsToolStripMenuItem.Enabled = true;
- }
- }
-
- private void exitToolStripMenuItem_Click(object sender, EventArgs e)
- {
- Close();
- }
-
- private void openToolStripMenuItem_Click(object sender, EventArgs e)
- {
- OpenFile();
- }
-
- private void renderToBitmapsToolStripMenuItem_Click(object sender, EventArgs e)
- {
- int dpiX;
- int dpiY;
-
- using (var form = new ExportBitmapsForm())
- {
- if (form.ShowDialog() != DialogResult.OK)
- return;
-
- dpiX = form.DpiX;
- dpiY = form.DpiY;
- }
-
- string path;
-
- using (var form = new FolderBrowserDialog())
- {
- if (form.ShowDialog(this) != DialogResult.OK)
- return;
-
- path = form.SelectedPath;
- }
-
- var document = pdfViewer1.Document;
-
- for (int i = 0; i < document.PageCount; i++)
- {
- using (var image = document.Render(i, (int)document.PageSizes[i].Width, (int)document.PageSizes[i].Height, dpiX, dpiY, false))
- {
- image.Save(Path.Combine(path, "Page " + i + ".png"));
- }
- }
- }
-
- private void toolStripButton1_Click_1(object sender, EventArgs e)
- {
- pdfViewer1.Renderer.Page--;
- }
-
- private void toolStripButton2_Click(object sender, EventArgs e)
- {
- pdfViewer1.Renderer.Page++;
- }
-
- private void cutMarginsWhenPrintingToolStripMenuItem_Click(object sender, EventArgs e)
- {
- cutMarginsWhenPrintingToolStripMenuItem.Checked = true;
- shrinkToMarginsWhenPrintingToolStripMenuItem.Checked = false;
-
- pdfViewer1.DefaultPrintMode = PdfPrintMode.CutMargin;
- }
-
- private void shrinkToMarginsWhenPrintingToolStripMenuItem_Click(object sender, EventArgs e)
- {
- shrinkToMarginsWhenPrintingToolStripMenuItem.Checked = true;
- cutMarginsWhenPrintingToolStripMenuItem.Checked = false;
-
- pdfViewer1.DefaultPrintMode = PdfPrintMode.ShrinkToMargin;
- }
-
- private void printPreviewToolStripMenuItem_Click(object sender, EventArgs e)
- {
- using (var form = new PrintPreviewDialog())
- {
- form.Document = pdfViewer1.Document.CreatePrintDocument(pdfViewer1.DefaultPrintMode);
- form.ShowDialog(this);
- }
- }
-
- private void _fitWidth_Click(object sender, EventArgs e)
- {
- FitPage(PdfViewerZoomMode.FitWidth);
- }
-
- private void FitPage(PdfViewerZoomMode zoomMode)
- {
- int page = pdfViewer1.Renderer.Page;
- pdfViewer1.ZoomMode = zoomMode;
- pdfViewer1.Renderer.Zoom = 1;
- pdfViewer1.Renderer.Page = page;
- }
-
- private void _fitHeight_Click(object sender, EventArgs e)
- {
- FitPage(PdfViewerZoomMode.FitHeight);
- }
-
- private void _fitBest_Click(object sender, EventArgs e)
- {
- FitPage(PdfViewerZoomMode.FitBest);
- }
-
- private void _page_KeyDown(object sender, KeyEventArgs e)
- {
- if (e.KeyCode == Keys.Enter)
- {
- e.Handled = true;
-
- int page;
- if (int.TryParse(_page.Text, out page))
- pdfViewer1.Renderer.Page = page - 1;
- }
- }
-
- private void _zoom_KeyDown(object sender, KeyEventArgs e)
- {
- if (e.KeyCode == Keys.Enter)
- {
- e.Handled = true;
-
- float zoom;
- if (float.TryParse(_zoom.Text, out zoom))
- pdfViewer1.Renderer.Zoom = zoom;
- }
- }
-
- private void toolStripButton4_Click(object sender, EventArgs e)
- {
- pdfViewer1.Renderer.ZoomIn();
- }
-
- private void toolStripButton3_Click(object sender, EventArgs e)
- {
- pdfViewer1.Renderer.ZoomOut();
- }
-
- private void _rotateLeft_Click(object sender, EventArgs e)
- {
- pdfViewer1.Renderer.RotateLeft();
- }
-
- private void _rotateRight_Click(object sender, EventArgs e)
- {
- pdfViewer1.Renderer.RotateRight();
- }
-
- private void _hideToolbar_Click(object sender, EventArgs e)
- {
- pdfViewer1.ShowToolbar = _showToolbar.Checked;
- }
-
- private void _hideBookmarks_Click(object sender, EventArgs e)
- {
- //pdfViewer1.ShowBookmarks = _showBookmarks.Checked;
- pdfViewer1.Document.Search("2015", false, true);
-
- }
-
- private void deleteCurrentPageToolStripMenuItem_Click(object sender, EventArgs e)
- {
- // PdfRenderer does not support changes to the loaded document,
- // so we fake it by reloading the document into the renderer.
-
- int page = pdfViewer1.Renderer.Page;
- var document = pdfViewer1.Document;
- pdfViewer1.Document = null;
- document.DeletePage(page);
- pdfViewer1.Document = document;
- pdfViewer1.Renderer.Page = page;
- }
-
- private void rotate0ToolStripMenuItem_Click(object sender, EventArgs e)
- {
- Rotate(PdfRotation.Rotate0);
- }
-
- private void rotate90ToolStripMenuItem_Click(object sender, EventArgs e)
- {
- Rotate(PdfRotation.Rotate90);
- }
-
- private void rotate180ToolStripMenuItem_Click(object sender, EventArgs e)
- {
- Rotate(PdfRotation.Rotate180);
- }
-
- private void rotate270ToolStripMenuItem_Click(object sender, EventArgs e)
- {
- Rotate(PdfRotation.Rotate270);
- }
-
- private void Rotate(PdfRotation rotate)
- {
- // PdfRenderer does not support changes to the loaded document,
- // so we fake it by reloading the document into the renderer.
-
- int page = pdfViewer1.Renderer.Page;
- var document = pdfViewer1.Document;
- pdfViewer1.Document = null;
- document.RotatePage(page, rotate);
- pdfViewer1.Document = document;
- pdfViewer1.Renderer.Page = page;
- }
-
- private void toolStripLabel1_Click(object sender, EventArgs e)
- {
-
- }
-
- private void MainForm_Load(object sender, EventArgs e)
- {
-
- }
- }
- }
|