Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
2 / 2 / 0
Регистрация: 05.12.2013
Сообщений: 295
1

Печать файла pdf

21.06.2019, 15:29. Просмотров 1712. Ответов 9
Метки нет (Все метки)

Добрый день! Подскажите, пожалуйста, хорошую библиотеку и пример для печати pdf-файлов. Хочу написать программу по печати pdf-файлов. Принтер использую нестандартный и необходимо выбирать размер печати. Пытался для эти целей использовать библиотеку RawPrint, но она вообще ничего не хочет печатать.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using RawPrint; //библиотека для печати pdf
 
namespace pdf_print
{
    public partial class Form1 : Form
    {
        string printerName; //название принтера
        public Form1()
        {
            InitializeComponent();
        }
 
        /*https://ourcodeworld.com/articles/read/502/how-to-print-a-pdf-from-your-winforms-application-in-c-sharp ссылка по где я взял информацию по этому методу */
 
        private void button1_Click(object sender, EventArgs e)
        {
            printPDF();
        }
 
    public void printPDF()
    {
            
        // Absolute path to your PDF to print (with filename)
        string Filepath = @"C:\Users\User\Desktop\123.pdf";
        // The name of the PDF that will be printed (just to be shown in the print queue)
        string Filename = "123.pdf";
        // The name of the printer that you want to use
        // Note: Check step 1 from the B alternative to see how to list
        // the names of all the available printers with C#
        string PrinterName = printerName;
 
        // Create an instance of the Printer
        IPrinter printer = new Printer();
 
        // Print the file
        printer.PrintRawFile(PrinterName, Filepath, Filename);
    }
 
    private void Form1_Load(object sender, EventArgs e)
        {
            foreach (string printerName in System.Drawing.Printing.PrinterSettings.InstalledPrinters)
            {
                comboBox1.Items.Add(printerName); //добавить порт в список
            }
        }
 
        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            printerName = comboBox1.SelectedItem.ToString();
        }
    }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.06.2019, 15:29
Ответы с готовыми решениями:

Разделение pdf-файла на несколько pdf-файлов
Здравствуйте, подскажите как разделить файл pdf - состоящий из n-страниц, на несколько файлов pdf...

Печать PDF на Konica Minolta
Привет всем! Пришло веселое время экономии и начальство вспомнило про наличие в офисе дорогой...

Печать и экспорт в PDF элементов на форме
Здравствуйте! Срочно нужна помощь. На форме находится изображение, и несколько элементов label,...

Печать страниц из PDF на разные принтеры в зависимости от размера и цветности
Доброго времени суток уважаемые форумчане. Объясню вкратце суть проблемы. Имеется .pdf файл (...

9
2 / 2 / 0
Регистрация: 05.12.2013
Сообщений: 295
24.06.2019, 08:30  [ТС] 2
Возможно можно печатать как-то без сторонних библиотек?
0
2 / 2 / 0
Регистрация: 05.12.2013
Сообщений: 295
04.07.2019, 16:28  [ТС] 3
В интернете нашел пример печати файла pdf, всё отлично печатается кроме картинки на нем. Почему-то вместо одной картинки, он пытается распечатать две, но на месте одной. Что может быть не так?
C#
1
2
3
4
5
6
7
8
9
10
            string path = @"C:\Печать.pdf";
            
            Process p = new Process();
            p.StartInfo = new ProcessStartInfo()
            {
                CreateNoWindow = true,
                Verb = "print",
                FileName = path //put the correct path here
            };
            p.Start();
0
2 / 2 / 0
Регистрация: 05.12.2013
Сообщений: 295
12.07.2019, 13:48  [ТС] 4
Почему-то используя для печати adobe reader, всё прекрасно печатается, а через написанную программу на месте одной картинке пытается распечатать две. Подскажите, в чем может быть дело, может каких-то настроек не хватает?
0
2 / 2 / 0
Регистрация: 05.12.2013
Сообщений: 295
15.07.2019, 14:24  [ТС] 5
Нашел библиотеку PdfiumViewer, теперь ее помощью картинка как и нужно печатается одна, но сам текст, который печатается стал отвратительного качества. Может кто знает хорошие библиотеки по печати pdf файлов?
Пример, с печатью библиотеки PdfiumViewer, прилагаю.

C#
1
2
3
4
5
6
7
8
9
10
11
12
            using PdfiumViewer;
 
            PrinterSettings printerSettings = new PrinterSettings();
            printerSettings.PrinterName = printerName;
            printerSettings.DefaultPageSettings.PaperSize = paperSize;
            printerSettings.DefaultPageSettings.Landscape = true;
            printerSettings.DefaultPageSettings.Margins = new Margins(0, 0, 0, 0);
 
            PdfiumViewer.PdfDocument pdfiumDoc = PdfiumViewer.PdfDocument.Load(path);
            PrintDocument pd = pdfiumDoc.CreatePrintDocument(PdfiumViewer.PdfPrintMode.CutMargin);
            pd.PrinterSettings = printerSettings;
            pd.Print();
0
2 / 2 / 0
Регистрация: 05.12.2013
Сообщений: 295
22.07.2019, 16:01  [ТС] 6
Подскажите, пожалуйста, кто как печатает pdf файлы, всё обыскал уже ничего толкового нет
0
Начинающий в WPF
131 / 89 / 44
Регистрация: 17.08.2015
Сообщений: 286
22.07.2019, 16:05 7
Цитата Сообщение от MAKC13 Посмотреть сообщение
Подскажите, пожалуйста, кто как печатает pdf файлы, всё обыскал уже ничего толкового нет
А Print Dialog не пойдёт? https://www.c-sharpcorner.com/... n-C-Sharp/
0
2 / 2 / 0
Регистрация: 05.12.2013
Сообщений: 295
22.07.2019, 16:20  [ТС] 8
M1ke423, Так я вроде не делал еще, а как подставить туда файл, который распечатать нужно?
0
2 / 2 / 0
Регистрация: 05.12.2013
Сообщений: 295
23.07.2019, 16:54  [ТС] 9
Подскажите, пожалуйста, как добавить выбор файла для печати?
C#
1
2
3
4
5
6
7
8
9
10
privatevoid PrintButton_Click(object sender, EventArgs e) {  
    PrintDialog printDlg = newPrintDialog();  
    PrintDocument printDoc = newPrintDocument();  
    printDoc.DocumentName = "Print Document";  
    printDlg.Document = printDoc;  
    printDlg.AllowSelection = true;  
    printDlg.AllowSomePages = true;  
    //Call ShowDialog  
    if (printDlg.ShowDialog() == DialogResult.OK) printDoc.Print();  
}
0
2 / 2 / 0
Регистрация: 05.12.2013
Сообщений: 295
24.07.2019, 13:50  [ТС] 10
Я так понимаю, используя данный метод, можно только картинки распечатать, а как можно распечатать pdf документ?
http://https://www.c-sharpcorn... n-C-Sharp/
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.07.2019, 13:50

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Какой командой отправить определённые страницы *.pdf* документа в печать
Какой командой отправить определённые страницы *.pdf* документа в печать?! К примеру 2 и 8... ...

Вывод PDF не из файла + печать
Для работы нужна печать автоматически сгенерированных документов, и для обычных html страниц,...

Печать в PDF - имя файла
Доброго дня. Есть такая задача. На листе есть табличка с данными и есть ячейка в которой...

Пакетная конвертация PDF в DOC и печать любых документов на PDF-принтере
В первую очередь извините, если создал тему в неположенном разделе, но к сожалению найти близкий по...

Печать pdf
Доброго времени суток. Подскажите решение - использую для подготовки к печати QPrinter и...

Печать с листа в pdf
Приветствую. Обычные 2D чертежи с легкостью переводятся в .pdf, при печати из пространства модели....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.