{Текст в PCL} Я должен распечатать текстовый файл с помощью PCL5 на языке Си, применив к нему шрифты. Не могли бы вы, пожалуйста, помочь мне в этом ?
Привет,
Я студент, работающий над проектом, основанным на PCL5 .
Пытаюсь разработать программу, которая будет обеспечивать функциональность печати текстовых файлов на принтере.
Драйвер будет реализован на языке Си.
Я реализовал команды PCL5 в программе C, приведенной ниже.
Теперь я хочу изменить шрифт текстового файла, но он не меняется.
Пожалуйста, помогите и предложите выяснить, где я допустил ошибку, и дайте мне знать, правильны ли команды для печати текстовых файлов или нет ?
Вот код для преобразования текста в PCL, над которым я работаю
Что я уже пробовал:
#include <stdio.h> #include<conio.h> typedef struct text { unsigned char data[100], coloumn, count_lines; }TEXT; struct text detail; int main() { int Esc = 27; int totalchar; unsigned char cPCLLineData[128]; char cGraphicsBegin[] = { 27, '&', 'a', '0', 'C', 27, '&', 'a', '0', 'R', 27, '(', '1', '2', 'U' }; char cRowHeader[] = { 27, '*', 's', '3', 'I' }; char cGraphicEnd[] = { 27, '*', 'c', '8', '3', 'E' }; FILE *fptr1, *fptr2; char filename[100], c; printf("Enter the filename to open for reading \n"); scanf("%s", filename); // Open one file for reading fptr1 = fopen(filename, "r"); if (fptr1 == NULL) { printf("Cannot open file %s \n", filename); exit(0); } printf("Enter the filename to open for writing \n"); scanf("%s", filename); // Open another file for writing fptr2 = fopen(filename, "w"); if (fptr2 == NULL) { printf("Cannot open file %s \n", filename); exit(0); } fwrite(&cGraphicsBegin, sizeof(cGraphicsBegin), 1, fptr2); /* Creating PCl file header */ { // Read contents from file c = fgetc(fptr1); while (c != EOF) { fputc(c, fptr2); c = fgetc(fptr1); } int u32ColCounter = 0; for (int rowCounter = 0; rowCounter <= (detail.coloumn - 1); rowCounter++) { /* Adding the data for single row */ for (int Coloumncounter = 0; Coloumncounter <= detail.count_lines; Coloumncounter++) { fwrite(&cGraphicEnd, sizeof(cGraphicEnd), 1, fptr2); } } fwrite(&cRowHeader, sizeof(cRowHeader), 1, fptr2);/* adding a header per row */ fwrite(&cPCLLineData, detail.coloumn, 1, fptr2); /* adding a header per row */ } fwrite(&cGraphicEnd, sizeof(cGraphicEnd), 1, fptr2);/* Creating PCl file footer */ printf("\nContents copied to %s", filename); fclose(fptr1); fclose(fptr2); return 0; }
Richard MacCutchan
Вы используете поля в структуре с именем detail, но никогда не инициализируете ее никакими значениями.
Patrice T
Похоже, код и вопрос не связаны между собой?
объясните проблему кода.