相片列印精靈
「相片列印精靈」藉由提供便於使用的精靈介面,協助使用者列印相片。 精靈可讓使用者指定相片列印大小和其他列印選項,然後將相片傳送至印表機。 精靈的設計目的是要讓使用者能夠列印相片並指定調整大小和其他列印選項的任何應用程式,以程式設計方式叫用精靈。 相片列印精靈可在 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 XP 上的相片列印精靈介面
支援的相片檔案格式
在 Windows XP 上,[相片列印精靈] 支援 Windows GDI+ 支援的所有圖形檔案格式。 目前,這些檔案格式包括:
- 點陣圖 (BMP)
- 圖形交換格式 (GIF)
- JPEG 格式 (JPEG)
- EXIF (EXCHANGEable Image File)
- 可攜式網路圖形 (PNG)
- 標記的影像檔案格式 (TIFF)
如需 GDI+所支援圖形檔案格式的詳細資訊,請參閱 點陣圖類型。
在 Windows Vista 上,[相片列印精靈] 支援安裝 WINDOWS 影像處理元件 (WIC) 編解碼器的任何圖像檔案格式。 WIC 提供數個標準編解碼器,包括:
- 點陣圖 (BMP)
- GIF
- 圖示格式 (ICO)
- JPEG
- PNG
- TIFF
- Windows 媒體相片格式
如需 WIC 和 WIC 編解碼器的詳細資訊,請參閱 Windows 映像處理元件
以程式設計方式啟動相片列印精靈
若要叫用相片列印精靈,請使用下列類別識別碼呼叫 IDropTarget 介面, (CLSID) :
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);}