欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

基于WPF實現(xiàn)PDF的顯示與轉(zhuǎn)換

 更新時間:2023年12月15日 10:22:43   作者:qq1326702940  
這篇文章為大家詳細主要介紹了如何基于WPF實現(xiàn)PDF的顯示并轉(zhuǎn)換成圖片,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下

1.NuGet安裝

O2S.Components.PDFView4NET.WPF

2.添加組件

工具箱中,空白處 右鍵,選擇項

WPF組件 界面,選擇NuGet安裝庫對面路徑下的  O2S.Components.PDFView4NET.WPF.dll

3.引入組件命名空間并使用

<Window
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:PDFView"
        xmlns:PageViewWPF="clr-namespace:O2S.Components.PDFView4NET.WPF;assembly=O2S.Components.PDFView4NET.WPF"
        x:Class="PDFView.MainWindow"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800" Loaded="Window_Loaded">
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition/>
        </Grid.ColumnDefinitions>
 
        <PageViewWPF:PDFPageView x:Name="PdfControl" HorizontalAlignment="Left" Height="auto" VerticalAlignment="Top" Width="auto" PageDisplayLayout="Custom"  WorkMode="PanAndScan" HighlightFormFields="True"/>
 
    </Grid>
</Window>
using O2S.Components.PDFView4NET;
using System.Windows;
 
namespace PDFView
{
    /// <summary>
    /// MainWindow.xaml 的交互邏輯
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }
 
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            PdfControl.Document = new PDFDocument() { FilePath = ".\\4.pdf" };
        }
    }
}

4.PDF轉(zhuǎn)換成圖片

聽說有破解版(無水印),找到了兩個版本兩個不同O2S.Components.PDFRender4NET破解版

版本2.0.1.0 對于測試PDF,使用正常

版本4.5.1.2 對于測試PDF,使用異常

PdfToImage(".\\4.pdf", Environment.CurrentDirectory, "4", ImageFormat.Png, Definition.Eight);
/// <summary>
        /// PDF文檔所有頁全部轉(zhuǎn)換為圖片
        /// </summary>
        /// <param name="pdfInputPath">PDF文件流</param>
        /// <param name="imageOutputPath">圖片輸出路徑</param>
        /// <param name="imageName">生成圖片的名字</param>
        /// <param name="imageFormat">設置所需圖片格式</param>
        /// <param name="definition">設置圖片的清晰度,數(shù)字越大越清晰</param>
        public static void PdfToImage(string pdfStream, string imageOutputPath, string imageName, ImageFormat imageFormat, Definition definition)
        {
            PDFFile pdfFile = PDFFile.Open(pdfStream);
            int startPageNum = 1;
            int endPageNum = pdfFile.PageCount;
            for (int i = startPageNum; i <= endPageNum; i++)
            {
                try
                {
                    Bitmap pageImage = pdfFile.GetPageImage(i - 1, 56 * (int)definition);
 
                    int canKao = pageImage.Width > pageImage.Height ? pageImage.Height : pageImage.Width;
                    int newHeight = canKao > 1080 ? pageImage.Height / 2 : pageImage.Height;
                    int newWidth = canKao > 1080 ? pageImage.Width / 2 : pageImage.Width;
                    Bitmap newPageImage = new Bitmap(newWidth, newHeight);
 
                    Graphics g = Graphics.FromImage(newPageImage);
                    g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
 
                    g.DrawImage(pageImage, new Rectangle(0, 0, newWidth, newHeight),
                    new Rectangle(0, 0, pageImage.Width, pageImage.Height), GraphicsUnit.Pixel);
                    newPageImage.Save(imageOutputPath + imageName + (endPageNum >= 2 ? ("-" + i) : "") + "." + imageFormat);//+ i.ToString() imageFormat
                    g.Dispose();
                    newPageImage.Dispose();
                    pageImage.Dispose();
                }
                catch (Exception ex)
                {
                    string ss = ex.ToString();
                }
            }
 
            pdfFile.Dispose();
        }
 
        /// <summary>
        /// 轉(zhuǎn)換的圖片清晰度,1最不清醒,10最清晰
        /// </summary>
        public enum Definition
        {
            One = 1, Two = 2, Three = 3, Four = 4, Five = 5, Six = 6, Seven = 7, Eight = 8, Nine = 9, Ten = 10
        }

5.官方代碼庫鏈接

PDFView4NET https://github.com/o2solutions/pdfview4net/tree/main

到此這篇關(guān)于基于WPF實現(xiàn)PDF的顯示與轉(zhuǎn)換的文章就介紹到這了,更多相關(guān)WPF PDF內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C# WinForm程序設計簡單計算器

    C# WinForm程序設計簡單計算器

    這篇文章主要為大家詳細介紹了C# WinForm程序設計簡單計算器,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • C#特性之匿名方法和Lambda表達式

    C#特性之匿名方法和Lambda表達式

    這篇文章主要介紹了C#特性之匿名方法和Lambda表達式,需要的朋友可以參考下
    2014-12-12
  • Unity實現(xiàn)圖片生成灰白圖的方法

    Unity實現(xiàn)圖片生成灰白圖的方法

    這篇文章主要為大家詳細介紹了Unity實現(xiàn)圖片生成灰白圖,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • TortoiseSVN使用教程

    TortoiseSVN使用教程

    TortoiseSVN 是 Subversion 版本控制系統(tǒng)的一個免費開源客戶端,可以超越時間的管理文件和目錄。本文給大家介紹TortoiseSVN使用教程,對tortoisesvn使用相關(guān)知識感興趣的朋友一起學習吧
    2015-12-12
  • C#調(diào)用FFmpeg操作音視頻的實現(xiàn)示例

    C#調(diào)用FFmpeg操作音視頻的實現(xiàn)示例

    本文主要介紹了C#調(diào)用FFmpeg操作音視頻的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • 在C# WPF下自定義滾動條ScrollViewer樣式的操作

    在C# WPF下自定義滾動條ScrollViewer樣式的操作

    這篇文章主要介紹了在C# WPF下自定義滾動條ScrollViewer樣式的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • C#遞歸算法之打靶算法分析

    C#遞歸算法之打靶算法分析

    這篇文章是對打靶算法分析,比較簡單,但邏輯一定要清楚,分析問題的方法一定要準確,有需要的朋友可以參考一下。
    2016-06-06
  • C#?wpf實現(xiàn)截屏框熱鍵截屏的示例代碼

    C#?wpf實現(xiàn)截屏框熱鍵截屏的示例代碼

    這篇文章主要為大家詳細介紹了C#?wpf實現(xiàn)截屏框熱鍵截屏的相關(guān)知識,文中的示例代碼講解詳細,具有一定的借鑒價值,有需要的小伙伴可以學習一下
    2023-09-09
  • C# DataTable中Compute方法用法集錦(數(shù)值/字符串/運算符/表等操作)

    C# DataTable中Compute方法用法集錦(數(shù)值/字符串/運算符/表等操作)

    這篇文章主要介紹了C# DataTable中Compute方法用法,總結(jié)分析了DataTable中Compute方法常見的數(shù)值運算操作、字符串操作、運算符操作、表運算等相關(guān)技巧,需要的朋友可以參考下
    2016-06-06
  • Unity?UGUI的Dropdown下拉菜單組件使用詳解

    Unity?UGUI的Dropdown下拉菜單組件使用詳解

    這篇文章主要為大家介紹了Unity?UGUI的Dropdown下拉菜單組件使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-07-07

最新評論