WPF> рдкреАрдбреАрдПрдл PDFSharp.Xps рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ: рд╣рд╛рдЗрдкрд░рд▓рд┐рдВрдХ рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреА рдорд░рдореНрдордд


PDFSharp рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ WPF рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗ рдкреАрдбреАрдПрдл рдЬреЗрдирд░реЗрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореЗрд░реА рдкрд┐рдЫрд▓реА рдкреЛрд╕реНрдЯ рдХреЛ рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЫреЛрдЯреА рдкреЛрд╕реНрдЯред рдЬреИрд╕рд╛ рдХрд┐ рдЙрд╕ рд▓реЗрдЦ рдореЗрдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЗрдирд░реЗрд╢рди рдХреЛ рдПрдХ рдордзреНрдпрд╕реНрде рдХреЗ рд░реВрдк рдореЗрдВ рдлреНрд▓реЛ рдиреНрдпреВрдбрдореЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред FlowDocument рдореЗрдВ, рд╣рдо рд╣рд╛рдЗрдкрд░рд▓рд┐рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рд╣рд╛рдЗрдкрд░рд▓рд┐рдВрдХреНрд╕ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдЬреЛ PDFSharp.Xps рдХрдирд╡рд░реНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдерд╛ рдЙрд╕рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг рдПрдХреНрд╕рдкреЗрд░реАрдореЗрдВрдЯ рддрддреНрд╡реЛрдВ рд╕реЗ рдЬреБрдбрд╝реА FixedPage_NavigateUri рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреА рдХреБрдВрджрддрд╛рдкреВрд░реНрд╡рдХ рдЕрдирджреЗрдЦреА рдХрд░ рд░рд╣рд╛ рдерд╛ред
рдореИрдВрдиреЗ рдкреАрдбреАрдПрдл 1.4 рдЖрдЙрдЯрдкреБрдЯ рдлреЙрд░реНрдореЗрдЯ рдХреЛ рдЫрд╛рдВрдЯрдиреЗ рдореЗрдВ рдХреБрдЫ рд╕рдордп рдмрд┐рддрд╛рдпрд╛, рд▓реЗрдХрд┐рди рдЕрднреА рддрдХ рдореБрдЭреЗ рдпрд╣ рдкрддрд╛ рдирд╣реАрдВ рдЪрд▓ рдкрд╛рдпрд╛ рд╣реИ рдХрд┐ PDFSharp.Xps рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ PdfContentWriter рдореЗрдВ рдкреНрд░рд┐рдВрдЯ рдХреЛ рдареАрдХ рд╕реЗ рдХреИрд╕реЗ рдареАрдХ рдХрд┐рдпрд╛ рдЬрд╛рдП ред
рдХрдЯ рдХреЗ рддрд╣рдд, рдПрдХ рд╕рд░рд▓ рд╕рдорд╛рдзрд╛рди рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддреН рд▓рд┐рдВрдХ рдПрдиреЛрдЯреЗрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рда рдХреЗ рд▓рд┐рдП рд╣рд╛рдЗрдкрд░рд▓рд┐рдВрдХ рдХреЛ рдереЛрдкрдирд╛ ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рд▓реЗрдЦ рдХреЗ рдЕрдВрдд рдореЗрдВ рдЖрдк рдкреАрдбреАрдПрдл рдЙрддреНрдкрд╛рджрди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдЖрджрд┐рдо рдХреА рд╢реБрд░реВрдЖрдд рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд▓рд┐рдП "рдХреЛрд╖реЗрд░" рд╕рдорд╛рдзрд╛рди рдХреЗ рд╡рд┐рд╖рдп рдкрд░ рдореЗрд░реЗ рд╢реЛрдз рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдкрд╛рдПрдВрдЧреЗред


рд▓рд┐рдВрдХ рдПрдиреЛрдЯреЗрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдорд╛рдзрд╛рди


рдпрд╣рд╛рдБ рдлрд┐рдХреНрд╕ рдХреЗ рд╕рд╛рде рдХрдорд┐рдЯ рдХрд╛ рд▓рд┐рдВрдХ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдЯреАрдЬрд╝рд░ рдиреЗ рд▓рд┐рдЦрд╛, PdfContentWriter рдХреЛрдб рдореЗрдВ рдореИрдВрдиреЗ рд▓рд┐рдВрдХ рдПрдиреЛрдЯреЗрд╢рди рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЛ рдЬреЛрдбрд╝рд╛ред рдореИрдВрдиреЗ рдЗрд╕реЗ WritePath (...) рд╡рд┐рдзрд┐ (рдиреАрдЪреЗ рдХреЛрдб рджреЗрдЦреЗрдВ) рдореЗрдВ рдХрд┐рдпрд╛ред
// Checking is there a link attached with this Path if (path.FixedPage_NavigateUri != null && !string.IsNullOrEmpty(path.FixedPage_NavigateUri.Trim())) { var bounds = path.Data.GetBoundingBox(); var xpsPage = path.Parent as FixedPage; if (xpsPage != null) { var pxToPtScale = xpsPage.PointHeight/xpsPage.Height; try { var uri = new Uri(path.FixedPage_NavigateUri); page.AddWebLink( new PdfRectangle(bounds.Left*pxToPtScale, page.Height - bounds.Top*pxToPtScale, bounds.Right*pxToPtScale, page.Height - bounds.Bottom*pxToPtScale), uri.AbsoluteUri); } catch (Exception) { Debug.Assert(false, "WritePath(...) > Invalid URI string provided"); } } } 

рдЗрд╕ рдХреЛрдб рдореЗрдВ, рдореБрдЭреЗ рдмрд╕ рдЙрд╕ рдкрде рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рд╕реАрдорд╛рдПрдБ рдорд┐рд▓рддреА рд╣реИрдВ рдЬреЛ рдЕрднреА рдкреАрдбреАрдПрдл рдкреГрд╖реНрда рдкрд░ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдореИрдВ рдпрд╣ рдХреЗрд╡рд▓ рдЙрди рд░рд╛рд╕реНрддреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд░рддрд╛ рд╣реВрдВ рдЬрд┐рдирдХреЗ рдкрд╛рд╕ рдПрдХ рдЧреИрд░-рд░рд┐рдХреНрдд FixedPage_NavigateUri рдорд╛рди рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдирд┐рдХрд▓рд╛, рдкреАрдбреАрдПрдл рд╢реАрдЯ рдХреЗ рдКрд░реНрдзреНрд╡рд╛рдзрд░ рдЕрдХреНрд╖ рдХреЛ рдПрдХреНрд╕рдкреАрдПрд╕ рдореЗрдВ рдЙрд╕реА рдЕрдХреНрд╖ рдХреЗ рд╡рд┐рдкрд░реАрдд рдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдкреГрд╖реНрда рдХреА рдКрдВрдЪрд╛рдИ рд╕реЗ рдмреНрд▓реЙрдХ рдмреЙрд░реНрдбрд░ рдХреЗ рдКрд░реНрдзреНрд╡рд╛рдзрд░ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЛ рдШрдЯрд╛рддреЗ рд╣реИрдВред рдЕрдЧрд▓рд╛, рдкрд░рд┐рдгрд╛рдореА рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рд╕реНрдХреНрд░реАрди рдкрд┐рдХреНрд╕рд▓ рд╕реЗ рдмрд┐рдВрджреБрдУрдВ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рд╕рдВрдЧрдд рдЧреБрдгрд╛рдВрдХ рд╕реНрдХреНрд░реАрди рдлреЛрдВрдЯ рдХреЗ рд╕рдВрдХрд▓реНрдк рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрд╕реЗ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВред рд▓рд┐рдВрдХ рдорд╛рдиреНрдп рд╣реИ рдпрд╣ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрде рд╕реЗ рд▓рд┐рдВрдХ рд▓рд┐рдВрдХ рдХреЛ Uri рд╡рд░реНрдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╢рд╛рдпрдж URI рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдзрд┐рдХ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп / рдХреБрд╢рд▓ / рдХрд╛рд░реНрдпрд╛рддреНрдордХ рддрд░реАрдХрд╛ рд╣реИред рд╣рдо рдЗрд╕ рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрднреА рдХреЗ рд▓рд┐рдП, рд╕рдмрд╕реЗ рд╕рд░рд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд░рддреЗ рд╣реИрдВред рдпрджрд┐ рд▓рд┐рдВрдХ рдкрддрд╛ рдЕрдорд╛рдиреНрдп рд╣реИ, рддреЛ рдмрд╕ рдбреАрдмрдЧ рдХрдВрд╕реЛрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрджреЗрд╢ рд▓рд┐рдЦреЗрдВред рдЖрдк рдпрд╣рд╛рдВ рдПрдХ рд▓реЙрдЧрд┐рдВрдЧ рдХреЛрдб рднреА рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред
рдЗрд╕ рддрд░рд╣ рдХреЗ рдкреИрдЪ рдХреЗ рд╕рд╛рде рдХрдирд╡рд░реНрдЯрд░ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдЪрд┐рддреНрд░ рдореЗрдВ рд▓реЗрдЦ рдХреЗ рдЯреАрдЬрд╝рд░ рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд▓рд┐рдВрдХ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдХрд╛рд▓реА рд╕реАрдорд╛ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВред рдпрд╣ рдирд┐рд░реНрдорд┐рдд рд▓рд┐рдВрдХ рдПрдиреЛрдЯреЗрд╢рди рд╣реИред рдХрд╛рд▓реА рд╕реАрдорд╛ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдПрдХ рдРрд╕реА рд╕рдорд╕реНрдпрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдХрдо рд╕реЗ рдХрдо рдирд┐рд░реНрдорд┐рдд рдкреАрдбреАрдПрдл рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдХреЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдПрдиреЛрдЯреЗрд╢рди рдмреНрд▓реЙрдХ рдорд╛рд░реНрдХрдЕрдк рдХреЛ рдЕрдирдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рд░реВрдк рдореЗрдВ рджрд┐рдЦрд╛рдПрдЧрд╛ред
  резрем реж рдУрдмрдЬ
 <<
 / рдЯрд╛рдЗрдк / рдПрдиреЙрдЯ
 / NM (11acccc9-2402-4718-8184-7ffb9bbb031cc)
 / рдПрдо (рдбреА: 20131119233814 + 04'00 ')
 / рдЙрдкрдкреНрд░рдХрд╛рд░ / рд▓рд┐рдВрдХ
 /Rect 9.81.885 64.185 158.123 50.55]
 / рдмреАрдПрд╕ << / рдкреНрд░рдХрд╛рд░ / рд╕реАрдорд╛ >>
 / рд╕реАрдорд╛ [0 0 0]
 / A << / S / URI / URI (http://habrahabr.ru/) >>
 >>
 endobj 

рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдЗрд╕ рдорд╛рд░реНрдХрдЕрдк рдореЗрдВ "рдмреЙрд░реНрдбрд░ [0 0 0]" рдХрд▓рд░ рдмреЙрд░реНрдбрд░ рдХреЗ RGB рдШрдЯрдХреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред

рдЬрд╛рдВрдЪ рдХреЗ рдкрд░рд┐рдгрд╛рдо


рд╕рдВрджрд░реНрдн рдПрдиреЛрдЯреЗрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЗрд╕рдХрд╛ рд╕рдорд╛рдзрд╛рди рд╕рддрд╣ рдкрд░ рд╣реЛрддрд╛ рд╣реИред рдПрдХрдорд╛рддреНрд░ рдХрдард┐рдирд╛рдИ рд╕рд╣реА рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд░рд╣реА рдереАред рд▓реЗрдХрд┐рди рд╕рдорд╛рдзрд╛рди рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИред рдпрд╣ рдкреНрд░рд╛рдЗрдореЗрдЯрд┐рд╡ рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕рд╣реА рд╣реЛрдЧрд╛, рдФрд░ рдПрдиреЛрдЯреЗрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рдЖрдЙрдЯрдкреБрдЯ рдкрде рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд░ рдПрдХ рдмреИрд╕рд╛рдЦреА рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рд▓реЗрдЦ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рддрд╕реНрд╡реАрд░ рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдпрд╣ рдПрдиреЛрдЯреЗрд╢рди рдПрдХ рдмрджрд╕реВрд░рдд рдХрд╛рд▓реА рд╕реАрдорд╛ рдХреЗ рд╕рд╛рде рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИред
рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдкреАрдбреАрдПрдл рд╡реА рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ред 1.4 , PDFSharp рдФрд░ PDFSharp.Xps рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЛ рдЦреЛрд▓рд╛ рдФрд░ рдХреЛрдб рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ред
PdfLinkAnnotation class рдореЗрдВ , рдореБрдЭреЗ рдПрдХ рдХреЛрдб рдкрд╕рдВрдж рдЖрдпрд╛
 internal override void WriteObject(PdfWriter writer) { // ... // switch (this.linkType) { // ... // case LinkType.Web: //pdf.AppendFormat("/A<</S/URI/URI{0}>>\n", PdfEncoders.EncodeAsLiteral(this.url)); Elements[Keys.A] = new PdfLiteral("<</S/URI/URI{0}>>", //PdfEncoders.EncodeAsLiteral(this.url)); PdfEncoders.ToStringLiteral(this.url, PdfStringEncoding.WinAnsiEncoding, writer.SecurityHandler)); break; // ... // } 

рд▓рд╛рдЗрди / рдП << / S / URI / URI рдкрд░ Googling рдиреЗ рдореБрдЭреЗ рдПрдирд╛рд▓рд╛рдЗрдЬрд┐рдВрдЧ PFs рдкреГрд╖реНрда рдкрд░ рд▓реЗ рдЧрдпрд╛ , рдЬрд╣рд╛рдВ рдореИрдВрдиреЗ рд▓рд┐рдВрдХ рдмреНрд▓реЙрдХ рдХреЗ рдорд╛рд░реНрдХрдЕрдк рдХрд╛ рдПрдХ рдЕрдиреБрдорд╛рдирд┐рдд рджреГрд╢реНрдп рджреЗрдЦрд╛ред
  рем реж рдУрдмрдЬ
 <<
 / рдкреНрд░рдХрд╛рд░ / рдХреНрд░рд┐рдпрд╛
 / рдПрд╕ / рдпреВрдЖрд░рдЖрдИ
 / рдпреВрдЖрд░рдЖрдИ (http://stinkeye.org)
 >>
 endobj 


рдкрд░рд┐рдгрд╛рдореА рдкреАрдбреАрдПрдл рдХреЛ рдЦреЛрд▓рддреЗ рд╣реБрдП, рдореИрдВрдиреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд╛рдпрд╛:
  рек реж рдУрдмрдЬ
 <<
 / рдЯрд╛рдЗрдк / рдкреЗрдЬ
 / рдореАрдбрд┐рдпрд╛рдмреЙрдХреНрд╕ [0 0 468 295.98]
 / рдЬрдирдХ рей реж рдЖрд░
 / рд╕рд╛рдордЧреНрд░реА 5 0 рдЖрд░
 / рд╕рдВрд╕рд╛рдзрди
 <<
 / ProSSet [/ PDF / Text / ImageB / ImageC / ImageI]
 / рдмрдврд╝рд╛рдПрдВ
 <<
 / рдЬреАрдПрд╕ реж рем реж рдЖрд░
 / рдЬреАрдПрд╕ 1 15 0 рдЖрд░
 >>
 / рдлреЙрдиреНрдЯ
 <<
 / рдПрдл реж резреж реж рдЖрд░
 / рдПрдл 1 14 0 рдЖрд░
 >>
 >>
 / рдПрдиреЛрдЯреНрд╕ [16 0 рдЖрд░]
 / рд╕рдореВрд╣
 <<
 / рд╕реАрдПрд╕ / рдбрд┐рд╡рд╛рдЗрд╕рдЖрд░рдЬреАрдмреА
 / рдПрд╕ / рдкрд╛рд░рджрд░реНрд╢рд┐рддрд╛
 / рдореИрдВ рдЭреВрдард╛ рд╣реВрдБ
 / рдХреЗ рдЭреВрдард╛
 >>
 >>
 endobj 

рдпрд╣ рдПрдХ рдкреЗрдЬ рд▓реЗрдЖрдЙрдЯ рдЗрдХрд╛рдИ рд╣реИред

  рел реж рдУрдмрдЬ
 <<
 / рд▓рдВрдмрд╛рдИ резрезрезрек
 / рдлрд╝рд┐рд▓реНрдЯрд░ / FlateDecode
 >>
 рдзрд╛рд░рд╛
 xY n 7} W╤Ъ /   $ P ╨ЗT; 
 ╤Ю p} K to Zm # @  WgW + рдпрд╛рдиреА
 .....
 ╨П kCh ~ cX тАЮLA тАв muw {Yf lgQYyu! рдЖрд╣! DBjw $ d'b K d'┬дD┬д╤У $ ┬╖ A ╦ЬP╤ТтАЭ: тВм ╨Вl2 рдФрд░ fY <>  U` o╨Оdv╤Т┬╢ {1╤Ю ╤Ю zHE╨Г рдУ <ред  dnW nl yy>  \ ╤Х  i s
 endstream
 endobj 

рдПрдХ рджреАрд░реНрдШрд╡реГрддреНрдд рд╡рд╣ рдкрд╛рда рдЫрд┐рдкрд╛рддрд╛ рд╣реИ рдЬреЛ рдПрдХ рд╣рдмреНрдмрд░ рдХреЗ рдорд╛рд░реНрдХрдЕрдк рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИред WinAnsi рджреНрд╡рд╛рд░рд╛ рдПрдиреНрдХреЛрдб рдХрд┐рдП рдЧрдП рдХрдИ рдЕрдирдкреЗрдХреНрд╖рд┐рдд рд╡рд░реНрдг рд╣реИрдВред рдХрдирд╡рд░реНрдЯрд░ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдП рдЧрдП рд╕рднреА рдкреАрдбреАрдПрдл рдкреНрд░рд╛рдЗрдореЗрдЯрд┐рд╡реНрд╕ рдФрд░ рдпреВрдирд┐рдХреЛрдб рдЯреЗрдХреНрд╕реНрдЯ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдпрд╣ рдмрд┐рдирд░ рд╕реНрдЯреНрд░реАрдо рдХрд╛ рдХрдЪреНрдЪрд╛ рдорд╛рд▓ рд╣реИред рдирддреАрдЬрддрди, рдХреБрдЫ рднреА рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИред рджреЗрдмрд╕реЗ рдЪрд▓рддреЗ рд╣реИрдВред
рд╣рдордиреЗ PdfContentWriter.WritePath (рдкрд╛рде рдкрд╛рде) рдореЗрдВ рдПрдХ рдмреНрд░реЗрдХ рд▓рдЧрд╛рдпрд╛ ред рдЗрд╕ рд╡рд┐рд░рд╛рдо рдмрд┐рдВрджреБ рдХреЗ рд▓рд┐рдП, рд╢рд░реНрдд рдЬреЛрдбрд╝реЗрдВ
  path.FixedPage_NavigateUri! = null &&! string.IsNullOrEmpty (path.FixedPage_NavigateUri) 

рддреЛ F5 рдкрд░ рдлрд┐рд░ рд╕реЗ рдкреНрд░реЗрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВред
рдЬрдм рд╣рдо рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдореБрдЦреНрдп рд╡рд┐рдВрдбреЛ рдореЗрдВ рдкреНрд░рд┐рдВрдЯ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдЗрд╕ рд╡рд┐рд░рд╛рдо рдмрд┐рдВрджреБ рдореЗрдВ рдЧрд┐рд░ рдЬрд╛рдПрдВрдЧреЗ рдФрд░ рдкрд╛рда рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╛рдЗрдореЗрдЯ рдХреА рдзрд╛рд░рд╛ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рджреЗрдЦрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗред рдирд┐рдореНрди рдкрд╛рда рдЬреИрд╕рд╛ рдХреБрдЫ рд╣реЛрдЧрд╛ред
  рдХреНрдпреВ% - рд╢реБрд░реБрдЖрддреА
   0.75 0 0 -0.75 0 295.98 рд╕реЗрдореА
   -100 Tz
   q% - рдЧреНрд▓рд┐рдлрд╝ рд╢реБрд░реВ рдХрд░реЗрдВ
     0 0 0 рдЖрд░рдЬреА
     / рдЬреАрдПрд╕ реж рдЬреАрдПрд╕
     рдмреАрдЯреА
     / F0 -1 Tf
     24 0 0 24 18.18 40.1867 Tm
     реж реж рдЯреАрдбреА <режрежреи рдмреА режрежрек4режрежрек рдПрдл режрежрек рдПрдл режрежрелреирежрежреж рдПрдл режрежрежрежрежрежреи рдмреА реирежрежрекрежрежрекрелрежрежрелрелрежрежрежрежрекрежрежрекрежрежрекрек рдмреА режрежрекрекрежрежрекрелрежрежрелрежрежрежрек> Tj
     рдИрдЯреА
   рдХреНрдпреВ% - рдЕрдВрдд рдЧреНрд▓рд┐рдлрд╝
   q% - рдЧреНрд▓рд┐рдлрд╝ рд╢реБрд░реВ рдХрд░реЗрдВ
     0 0 0 рдЖрд░рдЬреА
     / рдЬреАрдПрд╕ реж рдЬреАрдПрд╕
     рдмреАрдЯреА
     / рдПрдл 1 -1 рдЯреАрдПрдл
     16 0 0 16 18.18 87.3933 рдЯреА.рдПрдо.
     реж реж рдЯрдб <0028005B005300480055004C005000480051> Tj
     4.865 0 Td <0057> Tj
     0.34 0 Td <004C0051004A0003005A004C> Tj
     2.661 0 Td <0057> Tj
     0.34 0 Td <004B000300470052> Tj
     1.936 0 рдЯреАрдбреА <0057> рдЯреАрдЬреЗ
     0.34 0 Td <002F004C00540058004C0047000F00030029004F0052005A0027005200460058005000480051> Tj
     9.836 0 Td <0057> Tj
     0.34 0 Td <000300440051004700030033002700290036004B004400550053: Tj
     рдИрдЯреА
   рдХреНрдпреВ% - рдЕрдВрдд рдЧреНрд▓рд┐рдлрд╝

   % ...%

   рдХреНрд╖% - рдХреИрдирд╡рд╛рд╕ рд╢реБрд░реВ рдХрд░реЗрдВ
     1 0 0 1 18.18 145.44 рд╕реЗрдореА
     рдХреНрд╖% - рдЖрд░рдВрдн рдкрде
       1 0 0 1 5 10.4533 рд╕реЗрдореА
       0 0.204 0.506 рдЖрд░рдЬреА
       5 2.5 рдореА
       5 3.88 3.88 5 2.5 5 рдПрд╕
       1.12 5 0 3.88 0 2.5 s
       0 1.12 1.12 0 2.5 0 s
       3.88 0 5 1.12 5 2.5 рдПрд╕
       рдЬ
       рдЪ *
     рдХреНрдпреВ% - рдЕрдВрдд рдкрде
     q% - рдЧреНрд▓рд┐рдлрд╝ рд╢реБрд░реВ рдХрд░реЗрдВ
       0 0.204 0.506 рдЖрд░рдЬреА
       / рдЬреАрдПрд╕ реж рдЬреАрдПрд╕
       рдмреАрдЯреА
       / F0 -1 Tf
       14 0 0 14 20 17.8367 Tm
       0 реж рдЯреАрдбреА <00270052004600580050004800510057000300260052005100570048005B0057> Tj
       рдИрдЯреА
     рдХреНрдпреВ% - рдЕрдВрдд рдЧреНрд▓рд┐рдлрд╝
    
     % ...%

   рдХреНрдпреВ% - рдЕрдВрдд рдХреИрдирд╡рд╛рд╕

   % ...%

   рдХреНрд╖% - рдЖрд░рдВрдн рдкрде
     / рдЬреАрдПрд╕ 1 рдЬреАрдПрд╕
     0 0 0 рдЖрд░рдЬреА
     109.18 309.06 101.65 18.18 рдкреБрдирдГ 
     рдЪ
   рдХреНрдпреВ% - рдЕрдВрдд рдкрде

рд╣рдо рдпрд╣рд╛рдВ рдХреНрдпрд╛ рджреЗрдЦрддреЗ рд╣реИрдВ? рдкреЛрд╕реНрдЯрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреНрдпреВ - рдХреНрдпреВ рдирд┐рд░реНрджреЗрд╢ рдЧреНрд░рд╛рдлрд┐рдХрд▓ рд╕рдВрджрд░реНрдн рд╣реИрдВред рд╡реЗ рдПрдХ-рджреВрд╕рд░реЗ рдореЗрдВ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╣реИрдВ рдФрд░ рдЗрдВрдбреЗрдВрдЯреЗрд╢рди рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдпрд╣рд╛рдВ рдПрдХ рднреВрдорд┐рдХрд╛ рдирд┐рднрд╛рддрд╛ рд╣реИ (рд╣рд╛рдВ, рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдпрд╣ рд╕рдм рдкреАрдбреАрдПрдл рдкреНрд░рд╛рд░реВрдк рдХреЗ рд▓рд┐рдП рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдореЗрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдкрд╛рд╕ рдЕрднреА рддрдХ рдЗрд╕рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордп рдирд╣реАрдВ рд╣реИ)ред рдкрде рдорд╛рд░реНрдХрдЕрдк рдмреНрд▓реЙрдХ рдореЗрдВ рд▓рд┐рдВрдХ рдмреНрд▓реЙрдХ рдХреЗ рд▓рд┐рдП рдорд╛рд░реНрдХрдЕрдк рдХреИрд╕реЗ рдПрдореНрдмреЗрдб рдХрд░реЗрдВ

  <<
 / рдкреНрд░рдХрд╛рд░ / рдХреНрд░рд┐рдпрд╛
 / рдПрд╕ / рдпреВрдЖрд░рдЖрдИ
 / рдпреВрдЖрд░рдЖрдИ (http://stinkeye.org)
 >> 

рдореИрдВрдиреЗ рдЕрднреА рддрдХ рдЗрд╕рдХрд╛ рдкрддрд╛ рдирд╣реАрдВ рд▓рдЧрд╛рдпрд╛ рд╣реИред рдирд┐рдХрдЯрддрдо рд▓реЗрдЖрдЙрдЯ рд╡рд┐рдХрд▓реНрдк рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдореЗрдВ рдкрд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ (рдкреГрд╖реНрда 635, рдЙрджрд╛рд╣рд░рдг 9.14):
  / рд▓рд┐рдВрдХ << / MCID 1 >>% рдЪрд┐рд╣реНрдирд┐рдд-рд╕рд╛рдордЧреНрд░реА рдЕрдиреБрдХреНрд░рдо 1 (рд▓рд┐рдВрдХ)
 BDC% рдЪрд┐рд╣реНрдирд┐рдд-рд╕рд╛рдордЧреНрд░реА рдЕрдиреБрдХреНрд░рдо рдкреНрд░рд╛рд░рдВрдн рдХрд░реЗрдВ
 0.7 w% рд╕реЗрдЯ рд▓рд╛рдЗрди рдХреА рдЪреМрдбрд╝рд╛рдИ
 [] реж рдбреА% рд╕реЙрд▓рд┐рдб рдбреИрд╢ рдкреИрдЯрд░реНрди
 111.094 751.8587% m% рдЕрдВрдбрд░рд▓рд╛рдЗрди рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЬрд╛рдирд╛
 174.486 751.8587 l% рдбреНрд░рд╛ рд░реЗрдЦрд╛рдВрдХрд┐рдд рдХрд░реЗрдВ
 0.0 0.0 1.0 RG% рдиреАрд▓реЗ рд░рдВрдЧ рдХреЛ рдкрдердкрд╛рдХрд░ рд╕реЗрдЯ рдХрд░реЗрдВ
 S% рд╕реНрдЯреНрд░реЛрдХ рд░реЗрдЦрд╛рдВрдХрд┐рдд рдХрд░рддрд╛ рд╣реИ
 BT% рдкрд╛рда рд╡рд╕реНрддреБ рдЖрд░рдВрдн рдХрд░реЗрдВ
 14 0 0 14 111.094 753.976 Tm% рдЯреЗрдХреНрд╕реНрдЯ рдореИрдЯреНрд░рд┐рдХреНрд╕ рд╕реЗрдЯ рдХрд░реЗрдВ
 0.0 0.0 1.0 rg% рдиреАрд▓реЗ рд░рдВрдЧ рдореЗрдВ рдиреЙрдирд╕реНрдЯреНрд░реЛрдХрд┐рдВрдЧ рд░рдВрдЧ рд╕реЗрдЯ рдХрд░реЗрдВ
 (рдПрдХ рд▓рд┐рдВрдХ рдХреЗ рд╕рд╛рде) Tj% рд▓рд┐рдВрдХ рдХрд╛ рдкрд╛рда рджрд┐рдЦрд╛рдПрдВ
 ET% рдПрдВрдб рдЯреЗрдХреНрд╕реНрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ
 EMC% рдЕрдВрдд рдЪрд┐рд╣реНрдирд┐рдд-рд╕рд╛рдордЧреНрд░реА рдЕрдиреБрдХреНрд░рдо 

рдЗрд╕ рдорд╛рд░реНрдХрдЕрдк рдореЗрдВ рдореИрдВ рд╕рдордЭ рдирд╣реАрдВ рдкрд╛ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ " << / MCID 1 >> " рдХреНрдпрд╛ рд╣реИред рдпрд╣ рднреА рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдорд╛рд░реНрдХрдЕрдк рдмреНрд▓реЙрдХ рдХреИрд╕реЗ рдФрд░ рдХрд╣рд╛рдБ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рд░рдЦрд╛ рдЬрд╛рдПрдЧрд╛ред

рдореИрдВ рдЕрд╕рдлрд▓ рдлрд┐рдХреНрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЖрднрд╛рд░реА рд░рд╣реВрдВрдЧрд╛ред рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

Source: https://habr.com/ru/post/In202810/


All Articles