當前位置:首頁 » 編程軟體 » pdflib源碼編譯

pdflib源碼編譯

發布時間: 2023-11-27 06:15:06

㈠ 如何在編譯後,指定安裝路徑

1. 安裝目錄變數
在Makefile中,安裝目錄同樣需要使用變數來指定,這樣就可以很方便的修汪瞎改文件的安裝路徑。安裝目錄的標准命名下邊將一一介紹。這些變數基於標準的文件系統結構,這些變數的變種在SVR4、4.4BSD、linux、Ultrix v4以及其它現代操作系統中都有使用。
安裝者希望在調用make是改變這些值,(例如 make prefix=/usr install),或者在配置時改變困弊空這些值(例如 configure –prefix=/usr)。GNU包不會對在該系統上這些變數適合於哪些值做任何猜想,或者說GNU包不會猜測這些包應該被安裝到哪裡是更合適的:GNU包使用預設的特定設置是為了以便於所有的GNU包行為一致,它允許安裝者做任何自己想要的布局。
以下所羅列的兩個變數是指定安裝文件的根目錄。所有其它安裝目錄都是它們的子目錄。注意:文件不能直接安裝在這兩個目錄下。
prefix
這個變數(通常作為實際文件安裝目錄的父目錄,可以理解為其它實際文件安裝目錄的前綴)用於構造下列(除這兩個安裝根目錄以外的其它目錄變數)變數的預設值。變數「prefix」預設值是「/usr/local」。創建完整的GNU系統時,變數prefix的預設值是空值,「/usr」是「/」的符號連接符文件。(如果使用「Autoconf」工具,它應該寫成「@prefix@」)。注意:當更改了變數「prefix」以後重新執行「make install」,不會導致可執行程序(終極目標)的重建。
exec_prefix
這個前綴用於構造下列變數的預設值。變數「exec_prefix」預設值是「$(prefix)」(如果使用「Autoconf」工具,它應該寫為「@exec_prefix@」)。通常,「$(exec_prefix)」目錄中的子目錄下存放和機器相關文件(例如可執行文件和常式庫)。「$(prefix)」目錄的子目錄存放通用的一般文件。同樣:改變「exec_prefix」的值之後執行「make install」,不會重建可執行程序(終極目標)。
文件(包括可執行程序、說明文檔等)的安裝目錄:
bindir
用於安裝一般用戶可運行的可執行程序。通常它的值為:「/usr/local/bin」,使用時應寫為:「$(exec_prefix)/bin」。(使用「Autoconf」工具時,應該為「@bindir@」)
sbindir
安裝可在shell中直接調用執行的程序。這些命令僅對系統管理員有用(系統管理工具)。通常它的值為:「/usr/local/sbin」,要求在使用時應寫為:「$(exec_prefix)/sbin」。(使用「Autoconf」工具時,應該為「@sbindir@」)
libexecdir
用於安裝那些通常不是由用戶直接使用,而是由其它程序調用的可執行程序。通常它的值為:「/usr/local/libexec」,要求在使用時應寫為:「$(exec_prefix)/libexec」。(使用「Autoconf」工具時,應該為「@libexecdir@」)
程序執行時使用的數據文件可從以下兩個方面來分類:
1. 是否可由程序更改。分為兩類:程序可修改和不可修改的文件(雖然用戶可編輯其中某些文件)。
2. 是否和體系結構相關。分為兩類:體系結構無關文件,可被所有類型的機器共享;體系結構相關文件,僅可被相同類型機器、操作系統共享;其它的就是那些不能被任何兩個機器共享的文件。
這樣就存在六種不同的可卜含能。除編譯生成的目標文件(.o文件)和庫文件以外,不推薦使用那些和特定機器體系結構相關的文件,使用和體系無關的數據文件更加簡潔,而且,它的實現也並不非常困難。
在Makefile中應該使用以下變數為不同類型的文件指定對應的安裝目錄:
`datarootdir'
The root of the directory tree for read-only architecture-independent data files. This should normally be /usr/local/share, but write it as $(prefix)/share. (If you are using Autoconf, write it as `@datarootdir@'.) `datadir''s default value is based on this variable; so are `infodir', `mandir', and others.
Datarootdir
機器體系結構無關的只讀數據文件的根目錄。通常它的值為:「/usr/local/share」,使用時應寫為:「$(prefix)/share」。(使用「Autoconf」工具時,應該為「@datarootdir@」)。『datadir』的預設值是基於這個變數的,`infodir', `mandir'等其它變數的值也是如此。
datadir
用於安裝和機器體系結構無關的只讀數據文件。通常它的值與』datarootdir』一樣,但是我們使用兩個變數是為了用戶能夠移動一些程序特定的文件而不修改如man 文件、info文件的路徑。通常它的值為:「/usr/local/share」,使用時應寫為:「$(prefix)/share」。(使用「Autoconf」工具時,應該為「@datadir@」)。「$(infodir)」和「$(includedir)」作為例外情況,參考後續對它們的詳細描述。
Datadir的定義對所有包都一樣,因此你應該安裝你的數據在它的子目錄下。大部分包安裝它們的數據在如此目錄下:$(datadir)/package-name/.
sysconfdir
用於安裝從屬於特定機器的只讀數據文件,包括:主機配置文件、郵件服務、網路配置文件、「/etc/passwd」文件等。所有該目錄下的文件都應該是普通文本文件(可識別的「ASCII」碼文本文件)。通常它的值為:「/usr/local/etc」,在使用時應寫為:「$(prefix)/etc」。(使用「Autoconf」工具時,應該為「@sysconfdir@」)。
不要將可執行文件安裝在這個目錄下(可執行文件的安裝目錄應該是「$(libexecdir)」或者「$(sbindir)」)。也不要在這個目錄下安裝那些需要更改的文件(系統的配置文件等)。這些文件應該安裝在目錄「$(localstatedir)」下。
sharedstatedir
用於安裝那些可由程序運行時修改的文件,這些文件與體系結構無關。通常它的值為:「/usr/local/com」,要求在使用時應寫為:「$(prefix)/com」。(使用「Autoconf」工具時,應該為「@sharedstatedir@」)
localstatedir
用於安裝那些可由程序運行時修改的文件,但這些文件和體系結構相關。用戶沒有必要通過直接修改這些文件來配置軟體包,對於不同的配置文件,將它們放在「$(datadir)」或者「$(sysconfdir)」目錄中。「$(localstatedir)」值通常為:「/usr/local/var」,在使用時應寫為:「$(prefix)/var」。(使用「Autoconf」工具時,應該為「@localstatedir@」)
libdir
用於存放編譯後的目標文件(.o)文件庫文件(文檔文件或者執行的共享庫文件)。不要在此目錄下安裝可執行文件(可執行文件應該安裝在目錄「$(libexecdir)」下)。變數libdir值通常為:「/usr/local/lib」,使用時應寫為:「$(exec_prefix)/lib」。(使用「Autoconf」工具時,應該為「@libdir@」)
infodir
用於安裝軟體包的 Info 文件。它的預設值為:「/usr/local/info」,使用時應寫為:「$(prefix)/info」。(使用「Autoconf」工具時,應該為「@infodir@」)
lispdir
用於安裝軟體包的Emacs Lisp 文件的目錄。它的預設值為:「/usr/local/share/emacs/site-lisp」,使用時應寫為:「$(prefix)/share/emacs/site-lisp」。當使用Autoconf工具時,應將寫為「@lispdir@」。為了保證「@lispdir@」能夠正常工作,需要在「configure.in」文件中包含如下部分:

lispdir='${datadir}/emacs/site-lisp'
AC_SUBST(lispdir)

includedir
用於安裝用戶程序源代碼使用「#include」包含的頭文件。它的預設值為:「/usr/local/include」,使用時應寫為:「$(prefix)/include」。(使用「Autoconf」工具時,應該為「@includedir@」)。

除gcc外的大多數編譯器不會在目錄「/usr/local/include」中搜尋頭文件,因此這種方式只適用gcc編譯器。這一點應該不是一個問題,因為很多情況下一些庫需要gcc才能工作。對那些依靠其它編譯器的庫文件,需要將頭文件安裝在兩個地方,一個由變數「includedir」指定,另一個由變數「oldincludedir」指定。

oldincludedir
它所指定的目錄也同樣用於安裝頭文件,這些頭文件用於非gcc的編譯器。它的預設值為:「/usr/include」。(使用「Autoconf」工具時,應該為「@oldincludedir@」)。

Makefile在安裝頭文件時,需要判斷變數「oldincludedir」的值是否為空。如果為空,就不使用它進行頭文件的安裝(一般是安裝完成「/usr/local/include」下的頭文件之後才安裝此目錄下的頭文件)。

一個軟體包的安裝不能替換該目錄下已經存在的頭文件,除非是同一個軟體包(重新使用相同的軟體包在此目錄下安裝頭文件)。例如,軟體包「Foo」需要在「oldincludedir」指定的目錄下安裝一個頭文件「foo.h」時,可安裝的條件為:1.目錄「$(oldincludedir)」目錄下不存在頭文件「foo.h」;2. 已經存在頭文件「foo.h」,存在的頭文件「foo.h」是之前軟體包「Foo」安裝的。

檢查頭文件「foo.h」是否來自於軟體包Foo,需要在頭文件的注釋中包含一個「magic」字元串,使用命令「grep」來在該文件中查找這個magic。
`docdir'
The directory for installing documentation files (other than Info) for this package. By default, it should be /usr/local/share/doc/yourpkg, but it should be written as $(datarootdir)/doc/yourpkg. (If you are using Autoconf, write it as `@docdir@'.) The yourpkg subdirectory, which may include a version number, prevents collisions among files with common names, such as README.
這個目錄安裝除了Info外的該包提供的文檔,它的預設值/usr/local/share/doc/yourpkg,使用時應寫為:「$(datarootdir)/doc/yourpkg」。(使用「Autoconf」工具時,應該為「@docdir@」)。Yourpkg子目錄可能包括版本號,為了阻止具有相同文件名字的文件沖突,例如README。
`infodir'
The directory for installing the Info files for this package. By default, it should be, but it should be written as (If you are using Autoconf, write it as `@infodir@'.) infodir is separate from docdir for compatibility with existing practice.
這個目錄安裝該包的info文件。它的預設值是:/usr/local/share/info, 使用時應寫成:$(datarootdir)/info.(使用「Autoconf」工具時,應該為「@infodir@」).infodir從docdir中單獨分離出來為了兼容已經存在的practice。
`htmldir'
`dvidir'
`pdfdir'
`psdir'
Directories for installing documentation files in the particular format. (It is not required to support documentation in all these formats.) They should all be set to $(docdir) by default. (If you are using Autoconf, write them as `@htmldir@', `@dvidir@', etc.) Packages which supply several translations of their documentation should install them in `$(htmldir)/'ll, `$(pdfdir)/'ll, etc. where ll is a locale abbreviation such as `en' or `pt_BR'.
這些目錄用於安裝特定格式的文檔(並不要求支持所有這些格式的文檔)。預設值應該設置為:$(docdir)(使用「Autoconf」工具時,應該為「@htmldir @」等)。
`libdir'
The directory for object files and libraries of object code. Do not install executables here, they probably ought to go in $(libexecdir) instead. The value of libdir should normally be /usr/local/lib, but write it as $(exec_prefix)/lib. (If you are using Autoconf, write it as `@libdir@'.)
`lispdir'
The directory for installing any Emacs Lisp files in this package. By default, it should be /usr/local/share/emacs/site-lisp, but it should be written as $(datarootdir)/emacs/site-lisp.
If you are using Autoconf, write the default as `@lispdir@'. In order to make `@lispdir@' work, you need the following lines in your configure.in file:
lispdir='${datarootdir}/emacs/site-lisp'
AC_SUBST(lispdir)

`localedir'
The directory for installing locale-specific message catalogs for this package. By default, it should be /usr/local/share/locale, but it should be written as $(datarootdir)/locale. (If you are using Autoconf, write it as `@localedir@'.) This directory usually has a subdirectory per locale.
這個目錄安裝該包用於本地特定消息的目錄。預設值是:/usr/local/share/locale, 但是應該寫成:`@localedir@'。這個目錄常常對每個locale(本地化)都有一個子目錄。

㈡ keil如何打開多個點c並完整編譯

點擊全局編譯按鈕
,完成後在相應目錄文件夾(之前存放hex文件的路徑)下即可看到生成的ethernet.lib文件。
6、lib文件生成後,還需.h文件,h文件有兩種方式,一種是保留之前.c文件對應的.h文件,繼續照常使用,另一種是可將單獨的.h文件合並成一個新的ethernet.h,直接在main.c調用ethernet.h即可。
7、將lib文件剪切放到Ethernet文件路徑下,將之前的socket.c、w5500.c等文件刪除掉,頭文件換成ethernet.h,工程里將ethernet.lib加入到group(ethernet文件夾)里。
8、將取消編譯的文件重新打開,將編譯後文件類型改回.hex文件,然後全編譯,沒有錯誤即完成。

另外,若想將一個.c文件生成一個lib文件,只需保留該.c文件進行編譯,.h文件也保持不變,將工程中原先的.c文件替換成.lib文件即可。

用心寫好每篇文章,分享給需要的你☺,如果對您有用希望能留下您的腳印(點贊/評論/收藏)!

stm32
c語言
keil mdk
嵌入式
注意!注意!你有一個手機待領取
巨摩互動
廣告

Keil對lib封裝庫反匯編成C語言.pdf
502下載·22評論
2013年5月6日
把c++的exe工程編譯為動態庫dll靜態庫lib,並實現調用(超詳細)
2087閱讀·0評論·1點贊
2020年8月28日
源代碼封裝成庫Lib的方法
504閱讀·0評論·0點贊
2022年10月14日
STM32/keil把多個c文件編譯為靜態庫lib
2190閱讀·0評論·6點贊
2021年1月5日
C/C++ 靜態庫(lib)的概念和使用方法
3432閱讀·0評論·4點贊
2022年5月2日
Keil 下生成LIB庫文件以及如何使用LIB庫文件
732閱讀·1評論·0點贊
2020年12月19日
注意!注意!你有一個手機待領取
巨摩互動
廣告
C語言 之 編譯自己的lib庫
1457閱讀·0評論·1點贊
2020年8月7日
CMake交叉編譯簡單教程
3.2W閱讀·2評論·14點贊
2018年9月7日
如何將c語言封裝成dll文件,封裝動態庫dll與靜態庫lib(原理及簡單實例)
2069閱讀·0評論·1點贊
2021年5月21日
keil C對lib封裝庫反匯編成C語言,Keil軟體「C語言」及「匯編」混編 —— 相關知識整理.doc...
1587閱讀·0評論·0點贊
2021年5月21日
keil 加密:編譯代碼成lib庫
454閱讀·0評論·0點贊
2022年7月28日
Keil C 裡面Lib庫文件的生成與調用
11下載·0評論
2020年8月4日
keil C對lib封裝庫反匯編成C語言
101下載·4評論
2011年4月8日
C語言編譯lib庫手動添加
1888閱讀·0評論·0點贊
2017年6月18日
基於Keil下多文件打包生成Lib庫文件的具體操作
2667閱讀·3評論·2點贊
2020年1月18日
Windows DOS命令行編譯C/C++程序----庫文件.lib的鏈接
1752閱讀·0評論·0點贊
2019年2月21日
keil把源代碼生成lib的方法
2754閱讀·0評論·6點贊
2022年1月25日
keil 編譯生成 .lib文件
2244閱讀·4評論·1點贊
2018年1月8日
keil多文件編譯
724閱讀·0評論·1點贊
2022年4月3日
在keil中將文件封裝為lib庫文件需要注意的地方
1395閱讀·0評論·0點贊
2021年11月15日
去首頁
看看更多熱門內容
評論1

YJer


你好,第6點中提到的,將單獨的.h文件合並成一個新的ethernet.h,

㈢ 使用nmake編譯Gdal源代碼(Win10+VS2022)

為了編譯Gdal-master的源碼,需要PROJ的支持,而PROJ又需要SQLite的支持。

SQLite、PROJ、Gdal-master的源碼及編譯可參見網頁:

https://www.toutiao.com/a7063703225425199623/?log_from=fe233e3892be3_1644664643652

也可使用nmake在命令行創建(參考網頁 https://trac.osgeo.org/gdal/wiki/BuildingOnWindows

使用命令行,進入VS2022開發者命令行窗口

cd D:ProgramsMicrosoft Visual

D:

vcvars64.bat


cd D:SourceCodesgdal-master

set BINDIR=d:programsgdalgdal-bin

set DATADIR=d:programsgdalgdal-data

set INCDIR=d:programsgdalgdal-include

set LIBDIR=d:programsgdalgdal-lib

修改文件「nmake.opt」的內容:

(1)將

#PROJ_INCLUDE = -Id:install-projlocalinclude

改為

PROJ_INCLUDE = -ID:My3rdPartyinclude

(2)將

#PROJ_LIBRARY = d:install-projlocallibproj_6_0.lib shell32.lib ole32.lib

改為

PROJ_LIBRARY = D:My3rdPartylibproj.lib shell32.lib ole32.lib

依次使用下列命令, 創建x64的Release版本

nmake -f makefile.vc MSVC_VER=1930 WIN64=1

nmake /f makefile.vc install MSVC_VER=1930 WIN64=yes

nmake /f makefile.vc devinstall MSVC_VER=1930 WIN64=yes

執行完畢後,目錄「d:programsgdal」中的內容如下(使用命令 「tree /f d:programsgdal」 列出)

D:PROGRAMSGDAL

gdal-bin

gdal303.dll

gdaladdo.exe

gdalbuildvrt.exe

gdaldem.exe

gdalenhance.exe

gdalinfo.exe

gdallocationinfo.exe

gdalmanage.exe

gdalmdiminfo.exe

gdalmdimtranslate.exe

gdalsrsinfo.exe

gdaltindex.exe

gdaltransform.exe

gdalwarp.exe

gdal_contour.exe

gdal_create.exe

gdal_grid.exe

gdal_rasterize.exe

gdal_translate.exe

gdal_viewshed.exe

gnmanalyse.exe

gnmmanage.exe

nearblack.exe

ogr2ogr.exe

ogrinfo.exe

ogrlineref.exe

ogrtindex.exe

gdalplugins

drivers.ini

gdal-data

bag_template.xml

cubewerx_extra.wkt

default.rsc

ecw_cs.wkt

eedaconf.json

epsg.wkt

esri_StatePlane_extra.wkt

gdalicon.png

GDALLogoBW.svg

GDALLogoColor.svg

GDALLogoGS.svg

gdalmdiminfo_output.schema.json

gdalvrt.xsd

gmlasconf.xml

gmlasconf.xsd

gml_registry.xml

grib2_center.csv

grib2_process.csv

grib2_subcenter.csv

grib2_table_4_2_0_0.csv

grib2_table_4_2_0_1.csv

grib2_table_4_2_0_13.csv

grib2_table_4_2_0_14.csv

grib2_table_4_2_0_15.csv

grib2_table_4_2_0_16.csv

grib2_table_4_2_0_17.csv

grib2_table_4_2_0_18.csv

grib2_table_4_2_0_19.csv

grib2_table_4_2_0_190.csv

grib2_table_4_2_0_191.csv

grib2_table_4_2_0_2.csv

grib2_table_4_2_0_20.csv

grib2_table_4_2_0_3.csv

grib2_table_4_2_0_4.csv

grib2_table_4_2_0_5.csv

grib2_table_4_2_0_6.csv

grib2_table_4_2_0_7.csv

grib2_table_4_2_10_0.csv

grib2_table_4_2_10_1.csv

grib2_table_4_2_10_191.csv

grib2_table_4_2_10_2.csv

grib2_table_4_2_10_3.csv

grib2_table_4_2_10_4.csv

grib2_table_4_2_1_0.csv

grib2_table_4_2_1_1.csv

grib2_table_4_2_1_2.csv

grib2_table_4_2_20_0.csv

grib2_table_4_2_20_1.csv

grib2_table_4_2_20_2.csv

grib2_table_4_2_2_0.csv

grib2_table_4_2_2_3.csv

grib2_table_4_2_2_4.csv

grib2_table_4_2_2_5.csv

grib2_table_4_2_3_0.csv

grib2_table_4_2_3_1.csv

grib2_table_4_2_3_2.csv

grib2_table_4_2_3_3.csv

grib2_table_4_2_3_4.csv

grib2_table_4_2_3_5.csv

grib2_table_4_2_3_6.csv

grib2_table_4_2_4_0.csv

grib2_table_4_2_4_1.csv

grib2_table_4_2_4_10.csv

grib2_table_4_2_4_2.csv

grib2_table_4_2_4_3.csv

grib2_table_4_2_4_4.csv

grib2_table_4_2_4_5.csv

grib2_table_4_2_4_6.csv

grib2_table_4_2_4_7.csv

grib2_table_4_2_4_8.csv

grib2_table_4_2_4_9.csv

grib2_table_4_2_local_Canada.csv

grib2_table_4_2_local_HPC.csv

grib2_table_4_2_local_index.csv

grib2_table_4_2_local_MRMS.csv

grib2_table_4_2_local_NCEP.csv

grib2_table_4_2_local_NDFD.csv

grib2_table_4_5.csv

grib2_table_versions.csv

gt_datum.csv

gt_ellips.csv

header.dxf

inspire_cp_BasicPropertyUnit.gfs

inspire_cp_CadastralBoundary.gfs

inspire_cp_CadastralParcel.gfs

inspire_cp_CadastralZoning.gfs

jpfgdgml_AdmArea.gfs

jpfgdgml_AdmBdry.gfs

jpfgdgml_AdmPt.gfs

jpfgdgml_BldA.gfs

jpfgdgml_BldL.gfs

jpfgdgml_Cntr.gfs

jpfgdgml_CommBdry.gfs

jpfgdgml_CommPt.gfs

jpfgdgml_Cstline.gfs

jpfgdgml_ElevPt.gfs

jpfgdgml_GCP.gfs

jpfgdgml_LeveeEdge.gfs

jpfgdgml_RailCL.gfs

jpfgdgml_RdArea.gfs

jpfgdgml_RdASL.gfs

jpfgdgml_RdCompt.gfs

jpfgdgml_RdEdg.gfs

jpfgdgml_RdMgtBdry.gfs

jpfgdgml_RdSgmtA.gfs

jpfgdgml_RvrMgtBdry.gfs

jpfgdgml_SBAPt.gfs

jpfgdgml_SBArea.gfs

jpfgdgml_SBBdry.gfs

jpfgdgml_WA.gfs

jpfgdgml_WL.gfs

jpfgdgml_WStrA.gfs

jpfgdgml_WStrL.gfs

LICENSE.TXT

netcdf_config.xsd

nitf_spec.xml

nitf_spec.xsd

ogrvrt.xsd

osmconf.ini

ozi_datum.csv

ozi_ellips.csv

pci_datum.txt

pci_ellips.txt

pdfcomposition.xsd

pds4_template.xml

plscenesconf.json

ruian_vf_ob_v1.gfs

ruian_vf_st_uvoh_v1.gfs

ruian_vf_st_v1.gfs

ruian_vf_v1.gfs

s57agencies.csv

s57attributes.csv

s57expectedinput.csv

s57objectclasses.csv

seed_2d.dgn

seed_3d.dgn

stateplane.csv

template_tiles.mapml

tms_LINZAntarticaMapTileGrid.json

tms_MapML_APSTILE.json

tms_MapML_CBMTILE.json

tms_NZTM2000.json

trailer.dxf

vdv452.xml

vdv452.xsd

vicar.json

gdal-include

armadillo_headers.h

cplkeywordparser.h

cpl_alibaba_oss.h

cpl_atomic_ops.h

cpl_auto_close.h

cpl_aws.h

cpl_azure.h

cpl_compressor.h

cpl_config.h

cpl_config_extras.h

cpl_conv.h

cpl_cpu_features.h

cpl_csv.h

cpl_curl_priv.h

cpl_error.h

cpl_error_internal.h

cpl_float.h

cpl_google_cloud.h

cpl_hash_set.h

cpl_http.h

cpl_json.h

cpl_json_header.h

cpl_json_streaming_parser.h

cpl_json_streaming_writer.h

cpl_list.h

cpl_md5.h

cpl_mem_cache.h

cpl_minixml.h

cpl_minizip_ioapi.h

cpl_minizip_unzip.h

cpl_minizip_zip.h

cpl_multiproc.h

cpl_odbc.h

cpl_port.h

cpl_progress.h

cpl_quad_tree.h

cpl_sha1.h

cpl_sha256.h

cpl_spawn.h

cpl_string.h

cpl_swift.h

cpl_time.h

cpl_userfaultfd.h

cpl_vax.h

cpl_virtualmem.h

cpl_vsi.h

cpl_vsil_curl_class.h

cpl_vsil_curl_priv.h

cpl_vsil_plugin.h

cpl_vsi_error.h

cpl_vsi_virtual.h

cpl_worker_thread_pool.h

cpl_zlib_header.h

gdal.h

gdalexif.h

gdalgeorefpamdataset.h

gdalgrid.h

gdalgrid_priv.h

gdaljp2abstractdataset.h

gdaljp2metadata.h

gdaljp2metadatagenerator.h

gdallinearsystem.h

gdalpansharpen.h

gdalpython.h

gdalsse_priv.h

gdalwarper.h

gdalwarpkernel_opencl.h

gdal_alg.h

gdal_alg_priv.h

gdal_csv.h

gdal_frmts.h

gdal_mdreader.h

gdal_pam.h

gdal_priv.h

gdal_proxy.h

gdal_rat.h

gdal_simplesurf.h

gdal_thread_pool.h

gdal_utils.h

gdal_version.h

gdal_vrt.h

gnm.h

gnmgraph.h

gnm_api.h

gvgcpfit.h

internal_qhull_headers.h

memdataset.h

nasakeywordhandler.h

ograpispy.h

ogrgeomediageometry.h

ogrpgeogeometry.h

ogrsf_frmts.h

ogr_api.h

ogr_attrind.h

ogr_core.h

ogr_expat.h

ogr_feature.h

ogr_featurestyle.h

ogr_geocoding.h

ogr_geometry.h

ogr_geos.h

ogr_geo_utils.h

ogr_libs.h

ogr_p.h

ogr_proj_p.h

ogr_sfcgal.h

ogr_spatialref.h

ogr_srs_api.h

ogr_srs_esri_names.h

ogr_swq.h

ogr_xerces.h

ogr_xerces_headers.h

rawdataset.h

thinplatespline.h

vrtdataset.h

gdal-lib

gdal_i.lib

㈣ 如何從php程序讀取pdf文檔中的文本信息

PHP程序pdf格式文件函數庫

本函數庫共有65個函數

PDF是Adobe所發展的可攜式文件格式,它的文件可以在網路上傳輸、瀏覽,甚至使用印表機印出,或使用其它輸出裝置輸出,都可以保存原來的文字及圖片的編排。詳細的信息可以參考 Adobe 的網站。參考其中有關 PDF 或 Acrobat 的部份。

在 UNIX 系統中,可以使用 Thomas Merz 開發的 PDF 函數庫。將它編譯安裝完成後,再編譯 PHP 程序方可供 PHP 使用 pdflib。編譯時可能要 JPEG library 及 TIFF library。

除了用這個函數庫可以建立 PDF 文件外,FastIO 公司發展的產品 ClibPDF 也可以處理 PDF 文件。

以下為處理 PDF 文件的範例,本例對 test.pdf 加工後等待用戶讀取。

<?php

$fp = fopen("test.pdf", "w");

$pdf = PDF_open($fp);

pdf_set_info_author($pdf, "Uwe Steinmann");

PDF_set_info_title($pdf, "Test for PHP wrapper of PDFlib 2.0");

PDF_set_info_author($pdf, "Name of Author");

pdf_set_info_creator($pdf, "See Author");

pdf_set_info_subject($pdf, "Testing");

PDF_begin_page($pdf, 595, 842);

PDF_add_outline($pdf, "Page 1");

pdf_set_font($pdf, "Times-Roman", 30, 4);

pdf_set_text_rendering($pdf, 1);

PDF_show_xy($pdf, "Times Roman outlined", 50, 750);

pdf_moveto($pdf, 50, 740);

pdf_lineto($pdf, 330, 740);

pdf_stroke($pdf);

PDF_end_page($pdf);

PDF_close($pdf);

fclose($fp);

echo "<A HREF=getpdf.php3>finished</A>";

?>

上例中的 gettest.php3 可能像下面的樣子

<?php

$fp = fopen("test.pdf", "r");

header("Content-type: application/pdf");

fpassthru($fp);

fclose($fp);

?>

PDF_get_info: 返迴文件信息。

PDF_set_info_creator: 配置建檔者字元串。

PDF_set_info_title: 配置文件標題。

PDF_set_info_subject: 配置文件主題。

PDF_set_info_keywords: 配置文件的關鍵字。

PDF_set_info_author: 配置文件作者。

PDF_open: 建立新的 PDF 檔。

PDF_close: 關閉 PDF 檔。

PDF_begin_page: 啟始 PDF 文件頁面。

PDF_end_page: 關閉 PDF 文件頁面。

PDF_show: 輸出字元串到 PDF 文件。

PDF_show_xy: 輸出字元串到指定坐標。

PDF_set_font: 配置使用的字型及大小。

PDF_set_leading: 配置行距。

PDF_set_text_rendering: 配置文字表現方式。

PDF_set_horiz_scaling: 配置文字水平間距。

PDF_set_text_rise: 配置文字高度。

PDF_set_text_matrix: 配置文字矩陣。

PDF_set_text_pos: 配置文字位置。

PDF_set_char_spacing: 配置字元間距。

PDF_set_word_spacing: 配置字間距。

PDF_continue_text: 輸出文字。

PDF_stringwidth: 計算字元串的寬度。

PDF_save: 儲存環境變數。

PDF_restore: 還原環境變數。

PDF_translate: 移動原點。

PDF_scale: 縮放類。

PDF_rotate: 旋轉類。

PDF_setflat: 配置平滑值。

PDF_setlinejoin: 配置連接參數。

PDF_setlinecap: 配置 linecap 參數。

PDF_setmiterlimit: 配置斜邊界限。

PDF_setlinewidth: 配置線寬。

PDF_setdash: 配置虛線樣式。

PDF_moveto: 配置處理的坐標點。

PDF_curveto: 繪貝氏曲線。

PDF_lineto: 繪直線。

PDF_circle: 繪圓。

PDF_arc: 繪弧。

PDF_rect: 繪長方形。

PDF_closepath: 形成封閉的向量形狀。

PDF_stroke: 沿向量繪線。

PDF_closepath_stroke: 形成封閉的向量形狀並沿向量繪線。

PDF_fill: 填滿目前的向量。

PDF_fill_stroke: 填滿目前的向量並沿向量繪線。

PDF_closepath_fill_stroke: 形成封閉的向量形狀沿向量繪線並填滿。

PDF_endpath: 關閉目前向量。

PDF_clip: 組合所有向量。

PDF_setgray_fill: 指定填入的顏色為灰階。

PDF_setgray_stroke: 指定繪圖的顏色為灰階。

PDF_setgray: 指定繪圖的顏色為灰階並填入。

PDF_setrgbcolor_fill: 指定填入的顏色為彩色。

PDF_setrgbcolor_stroke: 指定繪圖的顏色為彩色。

PDF_setrgbcolor: 指定繪圖的顏色為彩色並填入。

PDF_add_outline: 目前頁面加入書簽。

PDF_set_transition: 配置頁的轉換。

PDF_set_ration: 配置二頁的切換時間。

PDF_open_gif: 打開 GIF 圖檔。

PDF_open_memory_image: 打開內存圖檔。

PDF_open_jpeg: 打開 JPEG 圖檔。

PDF_close_image: 關閉圖檔。

PDF_place_image: 放置圖片到 PDF 檔指定位置。

PDF_put_image: 放置圖片到 PDF 檔。

PDF_execute_image: 放置 PDF 檔中圖片到指定位置。

PDF_add_annotation: 加入注釋。

㈤ qt5編寫pdf閱讀器,怎麼編譯poppler

一般分為動態庫和靜態庫,方法分別如下: 一. 靜態庫的生成 1. 測試目錄: lib 2. 源碼文件名: mywindow.h, mywindow.cpp 3. 編寫項目文件: mywindow.pro 注意兩點: TEMPLATE = lib CONFIG += staticlib 4. 生成Makefile: qmake mywindow.pro 5

㈥ linux下如何安裝軟體

具體操作步驟如下。

1、打開系統,找到軟體中心,打開軟體中心。如下圖所示。

熱點內容
蘋果怎麼打開壓縮文件 發布:2024-11-17 18:13:42 瀏覽:206
海南聯通寬頻密碼是什麼 發布:2024-11-17 17:58:56 瀏覽:627
android簽名工具 發布:2024-11-17 17:43:05 瀏覽:575
酒店酒管軟體伺服器ip段 發布:2024-11-17 17:34:10 瀏覽:917
關系資料庫關鍵字 發布:2024-11-17 17:20:12 瀏覽:308
微信腳本添加好友 發布:2024-11-17 17:19:59 瀏覽:567
不支持ftpovertls 發布:2024-11-17 17:15:05 瀏覽:230
騰訊下載視頻加密 發布:2024-11-17 17:14:32 瀏覽:902
手機站源碼下載 發布:2024-11-17 17:12:17 瀏覽:148
root密碼忘記了怎麼辦 發布:2024-11-17 17:08:08 瀏覽:142