首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在UWP应用程序中更改PDF文件的视图

如何在UWP应用程序中更改PDF文件的视图
EN

Stack Overflow用户
提问于 2018-06-18 11:55:26
回答 1查看 238关注 0票数 0

我将PDF文件作为图像打开,并在翻转视图中显示它。

代码语言:javascript
运行
AI代码解释
复制
public async void OpenPDF(StorageFile file)
    {        
        var pdfFile = await PdfDocument.LoadFromFileAsync(file);

        if (pdfFile == null)
            return;

        for (uint i = 0; i < pdfFile.PageCount; i++)
        {
            StorageFolder tempFolder = ApplicationData.Current.LocalFolder;
            StorageFile jpgFile = await tempFolder.CreateFileAsync(pdfFile + "-Page-" + i.ToString() + ".png", CreationCollisionOption.ReplaceExisting);
            var pdfPage = pdfFile.GetPage(i);

            if (jpgFile != null && pdfPage != null)
            {
                IRandomAccessStream randomStream = await jpgFile.OpenAsync(FileAccessMode.ReadWrite);
                await pdfPage.RenderToStreamAsync(randomStream);
                await randomStream.FlushAsync();
                randomStream.Dispose();
                pdfPage.Dispose();
            }

            PdfImages.Add(jpgFile.Path);
        }
        this.pdfViewer.ItemsSource = PdfImages;
    }

我需要改变视图(FitWidth,FitPage,100%),像Windows8.1PDF查看器。

在Windows8.1应用程序中,我使用了阅读器应用程序,它将并排打开PDF到应用程序屏幕。但在UWP中,它的工作方式并不相同。所以我在寻找替代方案。许多PDF查看器是可用的,但所有都需要许可。那么有没有免费的源码呢?

EN

回答 1

Stack Overflow用户

发布于 2018-06-19 07:22:46

在UWP中,您可以在Image控件中显示PDF文件的内容,然后您可以设置Image.Stretch属性来描述图像应该如何拉伸以填充目标矩形。您还可以调整布局以根据需要显示PDF文件。有关显示PDF文件的更多详细信息,请查看PdfDocument示例。

此外,这里有一个简单的示例,

MainPage.xaml,

代码语言:javascript
运行
AI代码解释
复制
<Grid>
    <ListView Name="PDFListView" ItemsSource="{x:Bind PdfPages}">
        <ListView.ItemTemplate>
            <DataTemplate x:DataType="BitmapImage">
                <Image Source="{x:Bind }" Stretch="Uniform"/>
            </DataTemplate>
        </ListView.ItemTemplate>
    </ListView>
</Grid>

MainPage.xaml.cs,

代码语言:javascript
运行
AI代码解释
复制
public sealed partial class MainPage : Page
    {
        public MainPage()
        {
            this.InitializeComponent();
            PdfPages = new ObservableCollection<BitmapImage>();
            this.Loaded += MainPage_Loaded;
        }

        PdfDocument pdfDocument;
        public ObservableCollection<BitmapImage> PdfPages;
        private async void MainPage_Loaded(object sender, RoutedEventArgs e)
        {
            var picker = new FileOpenPicker();
            picker.FileTypeFilter.Add(".pdf");
            var file = await picker.PickSingleFileAsync();
            if (file != null)
            {
                try
                {

                    pdfDocument = await PdfDocument.LoadFromFileAsync(file);
                }
                catch (Exception ex)
                {
                    Debug.WriteLine(ex.Message);
                }
            }

            if (pdfDocument != null)
            {
                uint pageCount = pdfDocument.PageCount;
                for (uint pageIndex = 0; pageIndex < pageCount; pageIndex++)
                {
                    using (PdfPage page = pdfDocument.GetPage(pageIndex))
                    {
                        var stream = new InMemoryRandomAccessStream();
                        await page.RenderToStreamAsync(stream);
                        BitmapImage src = new BitmapImage();
                        await src.SetSourceAsync(stream);
                        PdfPages.Add(src);
                    }
                }
            }
        }
    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50908981

复制
相关文章
理解 UWP 视图的概念,让 UWP 应用显示多个窗口(多视图)
发布于 2018-07-27 01:19 更新于 2018-07-29 23:53
walterlv
2018/09/18
1.5K0
理解 UWP 视图的概念,让 UWP 应用显示多个窗口(多视图)
如何在Ubuntu 18.04中更改文件夹图标的颜色
这个快速提示教程向您展示了如何在Ubuntu 18.04 Nautilus文件浏览器中设置文件夹的自定义颜色或标志。
用户8705057
2021/06/08
4.3K0
如何在Linux中更改SSH端口?
SSH(Secure Shell)是一种安全的远程登录协议,它允许您通过网络远程连接到Linux系统并进行管理操作。默认情况下,SSH使用22端口进行通信。然而,为了增强系统的安全性,有时候我们需要更改SSH端口,以减少潜在的攻击。
网络技术联盟站
2023/05/25
9.6K0
如何在Linux中更改SSH端口?
如何在LaTeX中插入整页的pdf
学校的课程论文都要求 提交word版本的,对于平时已经习惯LaTeX的来说用word排版论文简直是折磨,还好与老师沟通后同意我提交pdf版本的。但是论文要求第一页是指定的封面,填写班级学号姓名等信息。
Hsinyan
2022/06/19
4.6K0
如何在LaTeX中插入整页的pdf
如何在 Linux 中更改主机名?
在 Linux 系统中,主机名是用于标识和区分网络上的不同计算机的名称。默认情况下,Linux 发行版会分配一个主机名给您的计算机,但是有时候您可能需要根据自己的需求更改主机名。在本文中,我们将详细介绍如何在 Linux 中更改主机名,以及更改主机名后可能涉及到的其他配置。
网络技术联盟站
2023/06/09
9K0
如何在 Linux 中更改主机名?
如何在 Linux 中更改 Nginx 80 端口?
Nginx 是一个开源的轻量级 Web 服务器替代 apache 来处理高流量的网站。
网络技术联盟站
2022/06/21
5.5K0
如何在 Linux 中更改 Nginx 80 端口?
如何在 Linux 中更改 Apache HTTP 端口?
Apache Web Server 是一个免费的开源跨平台 Web 服务器应用程序,用于通过 Internet 提供内容。
网络技术联盟站
2022/06/21
6.4K0
如何在 Linux 中更改 Apache HTTP 端口?
如何在Linux中更改用户ID?
在Linux系统中,每个用户都有一个唯一的用户ID(User ID),用于标识和管理用户的权限和资源访问。有时候,我们需要更改用户ID,可能是为了解决冲突、重组用户组或其他管理需求。本文将详细介绍如何在Linux中更改用户ID的几种方法。
网络技术联盟站
2023/06/08
8.6K0
如何在Linux中更改用户ID?
【DB笔试面试511】如何在Oracle中写操作系统文件,如写日志?
可以利用UTL_FILE包,但是,在此之前,要注意设置好UTL_FILE_DIR初始化参数。
AiDBA宝典
2019/09/30
30.1K0
【DB笔试面试511】如何在Oracle中写操作系统文件,如写日志?
如何在 Linux 中更改默认 ssh 端口 22?
SSH 服务使用的标准端口是 22/TCP。但是,您可能希望更改 SSH 默认端口 22,以确保您的服务器尽可能安全,因为标准 22/TCP 端口一直是互联网上黑客和机器人程序漏洞的目标。
会长君
2023/04/25
4.6K0
如何在Linux中更改SSH远程登录端口
SSH:短于安全Shell,SSH(由SSH通信安全公司开发)是用于远程登录安全协议。 使用SSH客户端,用户可以连接到服务器以比其他方法(例如telnet)更安全的方式传输信息。到右侧的图像是SSH会话,它使用一个命令行界面,可如何外观的示例。 SSH默认为端口22。
星哥玩云
2022/07/29
3.8K0
如何在 Eclipse 中更改注释块的 @author 版权信息?
我们在使用 IDE——Ecilpse 进行开发,需要注明版权信息的时候,如果不更改默认设置的话,在注释块 @author 的内容就是电脑系统默认的,例如下图所示。为了开发方便就需要进行修改。
白鹿第一帅
2021/03/02
4.7K0
如何在 Eclipse 中更改注释块的 @author 版权信息?
UWP 中的各种文件路径(用户、缓存、漫游、安装……)
发布于 2018-09-23 20:01 更新于 2018-12-14 01:54
walterlv
2020/02/10
2.2K0
Linux中的Chattr命令更改文件属性
在Linux中,文件属性是描述文件行为的元数据属性。 例如,属性可以指示是否压缩文件或指定是否可以删除文件。
用户5005176
2021/08/10
3.8K0
如何在Linux使用 chattr 命令更改文件或目录的扩展属性?
在 Linux 操作系统中,chattr 命令用于更改文件或目录的扩展属性,包括可写性、可执行性和删除性等。本文将介绍 chattr 命令的使用方法以及常见的参数。
网络技术联盟站
2023/04/20
3.9K0
如何在Linux使用 chattr 命令更改文件或目录的扩展属性?
点击加载更多

相似问题

如何在UWP应用程序中显示pdf文件?

14

如何在UWP应用程序中创建PDF文件?

12

如何在UWP应用程序中打开与其相关的PDF文件?

14

如何在HoloLens UWP中的相关应用程序中启动PDF文件?

11

UWP保存PDF文件

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档