Initial commit: OtozaiPrinter (AveryDennisonUtil) ラベル/レシート レイアウト設計・印刷 MFC アプリ

- 用紙設計キャンバス(1/100mm 基準)・テキスト/画像/矩形/直線アイテム
- コピー/複製/Zオーダー/整列/グリッドスナップ、原紙(下絵)読込と印刷可否
- GDI 直接印刷、.otz 保存/再読込(版数つき)
- MFC/CRT 静的リンクで VS2022 IDE から F5 デバッグ可
This commit is contained in:
yoshikazu
2026-06-05 17:27:29 +09:00
commit 19d1c39370
33 changed files with 3049 additions and 0 deletions
+36
View File
@@ -0,0 +1,36 @@
// ImageItem.h : 画像(ロゴ等)印刷アイテム
// 画像バイト列を .otz に埋め込み、ファイル単体で完結させる。
#pragma once
#include "PrintItem.h"
#include <atlimage.h>
#include <memory>
class CImageItem : public CPrintItem
{
DECLARE_SERIAL(CImageItem)
public:
CImageItem();
CImageItem(const CImageItem& other);
CByteArray m_bytes; // 元画像ファイルのバイト列(PNG/JPG/BMP)
int m_fit; // 0=矩形にフィット(縦横比無視), 1=縦横比保持
// ファイルから読み込んでバイト列を取り込む
BOOL LoadFromFile(LPCTSTR path);
// 元画像の画素サイズ(px)。取得できれば TRUE。
BOOL GetPixelSize(int& w, int& h);
// 元画像の埋め込み解像度(DPI)。情報が無ければ FALSE。
BOOL GetResolutionDpi(double& dx, double& dy);
ItemType Type() const override { return ItemType::Image; }
void Draw(CDC& dc, const CoordMap& map, bool selected) override;
CPrintItem* Clone() const override;
void Serialize(CArchive& ar) override;
private:
// バイト列から CImage を遅延生成(描画キャッシュ。シリアライズ対象外)
CImage* EnsureImage();
std::shared_ptr<CImage> m_cache;
};