PdfSharp — Начало работы

У меня есть консольное приложение C#, и я хотел бы добавить к нему некоторые функции PdfSharp.

Я скачал оба zip-файла с Sourceforge... как сборки, так и исходный код.

Кажется, есть несколько способов добавить функциональность

  • ссылка на файл .dll в разархивированной папке сборок.
  • на самом деле добавить проекты в мое решение.

Я пытаюсь использовать последний метод.

Это все, что мне нужно сделать?

  1. Я скопировал и вставил папку «PdfSharp» из разархивированного файла исходного кода в папку с моим решением.
  2. В VS я зашел в обозреватель решений, щелкнул правой кнопкой мыши решение и выбрал Add>Existing Project...
  3. Тогда я выбрал следующее...

введите здесь описание изображения

Я принимаю проекты PdfSharp-ag.csproj; PdfSharp-Hybrid.csproj; PdfSharp-WPF.csproj предназначены для каких-то других приложений? я имею в виду, что для моего простого консольного приложения все, что мне нужно, это проект PdfSharp.csproj?

После того, как я выполнил вышеуказанные шаги, мое решение выглядит следующим образом:

введите здесь описание изображения

... и при расширении со ссылкой на PdfSharp в исходном справочном разделе проектов:

введите здесь описание изображения


Затем я проверил, что все работает нормально с консольным приложением, используя следующий код:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Drawing; //<< additional reference required

using PdfSharp;
using PdfSharp.Pdf;
using PdfSharp.Drawing;

namespace PDFsharpSolutionQF
{
  class Program
  {
    static void Main(string[] args)
    {


      PdfDocument pdf = new PdfDocument();
      pdf.Info.Title = "My First PDF";
      PdfPage pdfPage = pdf.AddPage();
      XGraphics graph = XGraphics.FromPdfPage(pdfPage);
      XFont font = new XFont("Verdana",20,XFontStyle.Bold);
      graph.DrawString("This is my first PDF document",font,XBrushes.Black,new XRect(0,0,pdfPage.Width.Point,pdfPage.Height.Point),XStringFormats.Center);
      string pdfFilename = "firstpage.pdf";
      pdf.Save(pdfFilename);
      //Process.Start(pdfFilename);

    }
  }
}

person whytheq    schedule 12.09.2012    source источник


Ответы (3)


Вы можете использовать либо PdfSharp.csproj, либо PdfSharp-WPF.csproj — первый использует GDI+ для графических операций, второй использует функции WPF. -Hybrid является внутренним, а -ag предназначен для SilverLight (еще не полностью функционален).

person I liked the old Stack Overflow    schedule 12.09.2012
comment
(Я относительный новичок в С#) Проект, который я разрабатываю, представляет собой консольное приложение, поэтому я предполагаю, что нет реальной необходимости использовать версию WPF? GDI+ звучит немного пугающе... как я сказал, это просто консольное приложение C#? - person whytheq; 12.09.2012
comment
PDFsharp должен использовать функции операционной системы для измерения строк, загрузки изображений и т. д. GDI+ является оригинальной реализацией, WPF появился позже. Оба должны работать с консольными приложениями (думаю, для начала я бы использовал обычную сборку GDI+). - person I liked the old Stack Overflow; 12.09.2012
comment
Я добавил его и попробовал некоторые образцы с вашего сайта - пока все работает. В частности, завтра я буду использовать его, чтобы добавить пароль к существующему PDF-файлу перед отправкой по электронной почте ... похоже, у вас есть для этого все необходимое. Как новичок, очень приятно иметь качественный исходный код. Спасибо. - person whytheq; 12.09.2012

Не могли бы вы уточнить, почему вы пытаетесь добавить исходный код программы в свое собственное приложение? Если вы просто хотите использовать функции библиотеки, вам лучше просто сослаться на DLL в своем проекте, а затем использовать предоставляемый ею API.

Единственными причинами, которые я мог придумать, чтобы приблизиться к исходному коду, были: а) если вам нужно было отладить его или б) если вы намеревались каким-то образом изменить функциональность. Вы пытаетесь это сделать или просто используете API обычным способом?

person Henry Wilson    schedule 12.09.2012
comment
Ссылаясь на проекты, вы можете перейти к закомментированному исходному коду, нажав F12 (или любую другую клавишу, которую вы для этого назначили). Это будет работать, если вы обратитесь к DLL, но тогда вы увидите информацию, поступающую из DLL (без комментариев, без исходного кода). - person I liked the old Stack Overflow; 12.09.2012
comment
Да, я понимаю это, но обычно это не то, что нужно делать разработчику (по крайней мере, IMO). Чтобы привести пример, я обычно использую NHibernate в проектах, и у меня очень-очень редко возникает желание посмотреть исходный код! - person Henry Wilson; 12.09.2012
comment
@HenryWilson - если вы читаете их сайт, это один из рекомендуемых методов; все, что мне нужно знать, это правильно ли я следую их инструкциям - person whytheq; 12.09.2012
comment
@Henry Wilson: есть разные способы использования PDFsharp. Существует также пакет NuGet, который доставит для вас библиотеки DLL. Вы можете загрузить библиотеки DLL с SourceForge или CodePlex (в архиве) или получить полный исходный код. Intellisense отлично работает, когда вы используете исходный код. - person I liked the old Stack Overflow; 12.09.2012

Одним из преимуществ включения исходного кода в проект будет отсутствие необходимости распространять DLL. Я лично использую DLL. Но я вижу преимущество только в распространении EXE.

person Jeff    schedule 31.01.2015