OA办公软件与PDF文件联系紧密,PDF格式的文件也是办公人员必须掌握的!  设为首页 加入收藏夹 我来推荐 
您的位置:首页 > PDF应用技术 > PDF开发技术
PDF开发技术
PDFLib开发之图象操作基础
日期:2010-02-02 22:06:40 人气: 标签:

      利用PDFLib在PDF文档中嵌入图象非常容易。首先,图象文件必须通过PDFLib函数PDF_load_image()打开,该函数对图象参数做一个简单的分析并返回一个图象描述句柄,该句柄可以在调用PDF_fit_image()函数时与位置参数和缩放比例参数一同使用。
       if ((image = PDF_load_image(p, "auto", "image.jpg", 0, "")) == -1) {
           fprintf(stderr,"Error: Couldn't read image file.\n");
       } else {
          PDF_fit_image(p, image, 0.0, 0.0, "");
          PDF_close_image(p, image);
       }
        PDF_fit_image()的最后一个参数,是一个可选的列表用于支持一系列的定位,缩放及旋转等操作。

         以下是一个用C实现的完整的例子:

        #include "stdio.h"
        #include "stdlib.h"

        #include "pdflib.h"

        int main(void)
       {
              PDF *p;
              int image;
              char *imagefile = "oapdf_logo.gif";

              /* 图象文件的路径 */
             char *searchpath = "../data";

               /* 创建一个新的PDFlib对象*/
              if ((p = PDF_new()) == (PDF *) 0)
             {
                      printf("无法创建PDFLib对象 (内存不足)!\n");
                       return(2);
              }

              PDF_TRY(p){
                      if (PDF_begin_document(p, "image.pdf", 0, "") == -1) {
                            printf("Error: %s\n", PDF_get_errmsg(p));
                            return(2);
                      }

                     PDF_set_parameter(p, "SearchPath", searchpath);

                     PDF_set_info(p, "Creator", "PDF转换技术");
                     PDF_set_info(p, "Author", "OAPDF.COM");
                     PDF_set_info(p, "Title", "基本图象处理(C)");

                     image = PDF_load_image(p, "auto", imagefile, 0, "");

                     if (image == -1) {
                          printf("Error: %s\n", PDF_get_errmsg(p));
                     return(3);
                     }

                     /* dummy page size, will be adjusted by PDF_fit_image() */
                     PDF_begin_page_ext(p, 10, 10, "");
                     PDF_fit_image(p, image, 0.0, 0.0, "adjustpage");
                     PDF_close_image(p, image);
                     PDF_end_page_ext(p, "");

                     PDF_end_document(p, "");
               }

               PDF_CATCH(p) {
                      printf("PDFlib exception occurred in image sample:\n");
                      printf("[%d] %s: %s\n",
                      PDF_get_errnum(p), PDF_get_apiname(p), PDF_get_errmsg(p));
                      PDF_delete(p);
                      return(2);
              }

              PDF_delete(p);

              return 0;
        }

       该示例程序需要用到一个图象文件oapdf_logo.gif:


 您可以将该文件保存到本地,放在可执行程序上级目录data下,也可根据实际情况进行调整。
共有条评论信息评论信息
栏目分类

站点说明 | 站点导航 | 站点公告 |
OAPDF.COM版权所有 2009 V1.1