在不使用c中的任何第三方库的情况下创建pdf文件?

时间:2014-02-14 08:11:09

标签: c pdf

我的目标是创建一个文件并在其中保存一些文本。但问题是,文件应该以pdf格式创建,而不使用任何库。 我写了以下代码:

#include <stdio.h>

int main(void) {
    FILE *fp; 
    char ch; 
    fp = fopen("file.pdf", "w"); 
    fprintf(fp, "%PDF-1.3"); //to initiate data storage in pdf file 
    printf("\nEnter data to be stored in to the file:"); 
    while((ch = getchar()) != EOF) 
        putc(ch,fp); 
    fclose(fp); 
    return 0;
}

现在我的文件是以pdf格式创建的,但是当我通过双击它打开它时,它没有打开并给出如下消息: “打开文档时出错。此文件已损坏,无法修复。”

请提供任何解决此问题的建议。

2 个答案:

答案 0 :(得分:8)

命名文件“file.pdf”并写入几个头字节不会使其成为PDF文件。文件格式由其内容决定,而不是其名称(或file等某些工具用于“猜测”格式的字节数。)

如果您想“不使用任何库”来编写PDF文件,则需要PDF文件格式的描述,然后根据该规范生成文件

我会强烈阻止这种做法。第三方图书馆是有原因的。

答案 1 :(得分:2)

如果您想在没有任何库的帮助下创建特定格式的文件,第一个自然步骤应该是查看格式的规范

对于PDF,规范是ISO标准。与大多数ISO标准不同,您必须为此付费,您可以从Adobe网站下载免费版本,该版本仅使用不同的页眉和页脚:ISO 32000-1 copy from Adobe

如果您不喜欢ISO规范的RFC'语言,您可以选择Adobe自己查看最新的PDF参考文献;在这些文件中,替代语言机制用于指定要求,建议,选项,拦截等。PDF reference, sixth edition (Version 1.7)