Mavzu: Hujjatlar. Reja



Yüklə 0,58 Mb.
səhifə5/6
tarix15.04.2023
ölçüsü0,58 Mb.
#125328
1   2   3   4   5   6
121

Ruxsat etilgan hujjatlar.

Ruxsat etilgan hujjatlar aniq belgilangan tartibga ega va birinchi navbatda chop etish uchun mo'ljallangan, lekin ekranni o'qish uchun ham ishlatilishi mumkin. WPF-dagi bunday hujjatlar XPS-ga asoslangan hujjatlarni o'z ichiga oladi. XPS hujjatini ko'rish uchun DocumentViewer elementidan foydalaning . DocumentViewer o'zining mazmuni sifatida FixedDocument elementini qabul qiladi , bu sobit hujjatni ifodalaydi.
Masalan:

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:DocumentsApp"
mc:Ignorable="d"
Title="MainWindow" Height="250" Width="400">

































FixedDocument turli xil sahifalarni olishi mumkin. Har bir sahifa PageContent elementini ifodalaydi . Ushbu elementda FixedPage ob'ekti mavjud bo'lib , u o'z navbatida boshqa elementlarni o'z ichiga oladi - bu ellipslar, matn maydonlari va boshqalar bo'lishi mumkin. Shunday qilib, bu holda bizda ikkita sahifa bor. Width va Height xususiyatlaridan foydalanib, biz sahifalar hajmini boshqarishimiz mumkin.
Bundan tashqari, bu erda biz hujjatni yuklash va saqlash uchun ikkita tugmachani joylashtirdik. Endi C# kod faylida ular uchun hodisa ishlov beruvchilarini aniqlaymiz:

using Microsoft.Win32;
using System.IO;
using System.Windows;
using System.Windows.Xps.Packaging;
using System.Windows.Xps;
using System.Windows.Documents;


namespace DocumentsApp
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}


private void Save_Click(object sender, RoutedEventArgs e)
{
SaveFileDialog sfd = new SaveFileDialog();
sfd.Filter = "XPS Files (*.xps)|*.xps";
if (sfd.ShowDialog() == true)
{
XpsDocument doc = new XpsDocument(sfd.FileName, FileAccess.Write);
XpsDocumentWriter writer = XpsDocument.CreateXpsDocumentWriter(doc);
writer.Write(documentViewer.Document as FixedDocument);
doc.Close();
}
}


private void Load_Click(object sender, RoutedEventArgs e)
{
OpenFileDialog ofd = new OpenFileDialog();
ofd.Filter = "XPS Files (*.xps)|*.xps";


if (ofd.ShowDialog() == true)
{
XpsDocument doc = new XpsDocument(ofd.FileName, FileAccess.Read);
documentViewer.Document = doc.GetFixedDocumentSequence();
}
}
}
}

XpsDocument sinfi hujjatni saqlash va ochish uchun ishlatiladi . Uni ishlatish uchun loyihaga ReachFramework.dll va System.Printing.dll kutubxonalarini qo'shishimiz kerak .
Hujjatni saqlash uchun biz ob'ektni olamiz XpsDocumentWriterva uni chaqiramiz Write().
Hujjatni ochish uchun GetFixedDocumentSequence()XpsDocument ob'ektining usulidan foydalaning.
Ilovani ishga tushirgandan so'ng biz belgilanishda aniqlangan xaml hujjatimizni ko'rishimiz mumkin:

3-rasm.
Skrinshotdan ko'rinib turibdiki, DocumentViewer qattiq hujjat konteynerida biz foydalanishimiz mumkin bo'lgan ba'zi bir asosiy funksiyalar (masalan, masshtablash, qidirish) mavjud.
Tajriba uchun siz MS Word-da eng oddiy xps fayllarini yaratishga harakat qilishingiz mumkin (buning uchun standart docx hujjati xps formatiga eksport qilinishi mumkin) va ushbu hujjatni dasturimizga yuklashingiz mumkin.


  1. Yüklə 0,58 Mb.

    Dostları ilə paylaş:
1   2   3   4   5   6




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©muhaz.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin