창에서 것은의 해결책 응용 프로그램 내에서 PDF 파일 열기
평상시처럼 저장소 파일로 PDF 파일을 열었습니다.
StorageFile file = await StorageFile.GetFileFromApplicationUriAsync(new Uri("ms-appx:///Assets/pdffile.pdf"));
Windows.Data.Pdf.PdfDocument doc = await Windows.Data.Pdf.PdfDocument.LoadFromFileAsync(file);
Load(doc);
이제 PDF 문서를 페이지별로 BitmapImage로 읽고 목록에 추가했습니다.
public async void Load(PdfDocument pdfDoc)
{
PdfPages.Clear();
for (uint i = 0; i < pdfDoc.PageCount; i++)
{
BitmapImage image = new BitmapImage();
var page = pdfDoc.GetPage(i);
using (InMemoryRandomAccessStream stream = new InMemoryRandomAccessStream())
{
await page.RenderToStreamAsync(stream);
await image.SetSourceAsync(stream);
}
PdfPages.Add(image);
}
}
public ObservableCollection<BitmapImage> PdfDocPages
{
get;
set;
} = new ObservableCollection<BitmapImage>();
ObservableCollection을 ItemsControl에 바인딩하면 PDF를 이미지로 볼 수 있습니다.
<ScrollViewer ZoomMode="Enabled" Background="DarkGray" Grid.Column="1">
<ItemsControl ItemsSource="{Binding PdfDocPages, ElementName=pageRoot}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Image Source="{Binding}" Margin="0 2" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</ScrollViewer>
상대 코드 스 니펫? 개발중인 기능은 무엇입니까? 독자 앱은 무엇입니까? –
코드 스 니펫은 내 문제와 아무런 관련이 없습니다. 문제는 PDF 뷰어에 있습니다. Reader app는 Microsoft Corporation에서 PDF 및 기타 문서를 여는 응용 프로그램입니다. –
위의 그림에서 왼쪽은 내 응용 프로그램 화면이고 오른쪽은 독자 응용 프로그램입니다. pdf가 앱에서 열리면 판독기 앱이 화면을 균등하게 분할하여 실행됩니다. –