相片列印精靈
相片列印精靈提供易於使用的精靈介面,協助用戶列印相片。 精靈可讓使用者指定相片列印大小和其他列印選項,然後將相片傳送至印表機。 精靈的設計目的是讓任何想讓用戶能夠列印相片並指定大小及其他列印選項的應用程式,可以以程式設計的方式叫用它。 相片列印精靈可在 Windows XP 和 Windows Vista 上使用。
相片列印精靈所提供的功能
相片列印精靈提供數個選項,可能無法在一般印表機對話框中使用,例如具有精確尺寸的多版面配置範本。 版面配置範本可讓使用者充分利用攝影印刷紙上可用的空間。 其他可透過相片列印精靈指定或存取的選項包括:
- 從可用的印表機或虛擬印表目的地清單中選取印表機(例如,Microsoft XPS 檔案寫入器)。 在 Windows Vista 上,視印表機或虛擬列印目的地的功能而定,可能會提供下列選項:
- 紙張大小。 例如,“Letter”、“Legal”、“A3”。
- 列印品質,以每英吋 (dpi) 解析度支援的點為單位。
- 紙張類型。 例如,“Plain” 或 “Glossy”。
- 啟動特定印表機的列印偏好設定和屬性。
- 設定每個圖片的 副本數量(在 Windows Vista 上)或 每個圖片的使用次數(在 Windows XP 上)微調控制框中的值。
- 指定列印版面配置範本。 例如,全頁相片 或 錢包照片。
- 選取 調整圖片到框架 選項(僅適用於 Windows Vista)。
- 使用目前指定的選項預覽列印相片。
- 存取進階列印選項,例如用於列印 的 Sharpen 和 色彩管理 (僅適用於 Windows Vista)。
任何應用程式都可以受益於相片列印精靈所提供的功能和相片列印功能。 應用程式可以傳入要列印的檔案。 然後,「相片列印精靈」會根據使用者指定的選項來準備檔案以進行列印,並將備妥的檔案傳送至印表機。
下圖顯示 Windows Vista 上的相片列印精靈介面
在 Windows Vista 上的相片列印精靈
下圖顯示 Windows XP 上的相片列印精靈介面
支援的相片檔格式
在 Windows XP 上,相片列印精靈支援 Windows GDI+支援的所有圖形檔格式。 目前,這些檔案格式包括:
- 點陣圖 (BMP)
- 圖形交換格式 (GIF)
- 聯合攝影專家組(JPEG)
- 可交換影像檔案 (EXIF)
- 可攜式網路圖形 (PNG)
- 標記的影像檔案格式 (TIFF)
如需 GDI+ 所支援之圖形檔案格式的詳細資訊,請參閱 位陣圖類型。
在 Windows Vista 上,相片列印精靈支援安裝 Windows 映射元件 (WIC) 編解碼器的任何圖像檔格式。 WIC 提供數個標準編解碼器,包括:
- 點陣圖 (BMP)
- GIF
- 圖示格式 (ICO)
- JPEG
- PNG
- TIFF
- Windows Media Photo 格式
如需 WIC 和 WIC 編解碼器的詳細資訊,請參閱 Windows 映像處理元件
以程式設計方式啟動相片列印精靈
若要叫用相片列印精靈,請使用下列類別標識符呼叫 IDropTarget 介面:
static const CLSID CLSID_PrintPhotosDropTarget =
{0x60fd46de, 0xf830, 0x4894, {0xa6, 0x28, 0x6f, 0xa8, 0x1b, 0xc0, 0x19, 0x0d}};
相片列印精靈所要處理的檔案會指定於 IDataObject 物件中。
下列程式代碼範例示範如何叫用相片列印精靈。
static const CLSID CLSID_PrintPhotosDropTarget =
{0x60fd46de, 0xf830, 0x4894, {0xa6, 0x28, 0x6f, 0xa8, 0x1b, 0xc0, 0x19, 0x0d}};
// A data object that contains the list of photos to print.
IDataObject* pDataObject;
// Create the Photo Printing Wizard drop target.
CComPtr<IDropTarget> spDropTarget;
hr = CoCreateInstance(CLSID_PrintPhotosDropTarget,
NULL,
CLSCTX_INPROC_SERVER,
IID_PPV_ARGS(&spDropTarget));
// Drop the data object onto the drop target.
POINTL pt = {0};
DWORD dwEffect = DROPEFFECT_LINK | DROPEFFECT_MOVE | DROPEFFECT_COPY;
spDropTarget->DragEnter(pDataObject, MK_LBUTTON, pt, &dwEffect);
spDropTarget->Drop(pDataObject, MK_LBUTTON, pt, &dwEffect);}