最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++實(shí)現(xiàn)添加圖片水印到PDF文檔

 更新時(shí)間:2023年11月24日 14:43:03   作者:E-iceblue  
水印是顯示在文檔內(nèi)容后面的淡色文字或圖片,可以用于指示文檔的狀態(tài)(保密、草稿等),本文主要為大家介紹了如何使用?Spire.PDF?for?C++?在?PDF?文檔中添加圖片水印,需要的可以參考下

水印是顯示在文檔內(nèi)容后面的淡色文字或圖片,可以用于指示文檔的狀態(tài)(保密、草稿等),也可以含蓄地展示公司徽標(biāo)。水印有助于提示文檔的來源,從而避免未經(jīng)允許的復(fù)制和轉(zhuǎn)發(fā)。本文將介紹如何使用 Spire.PDF for C++ 在 PDF 文檔中添加圖片水印

安裝 Spire.PDF for C++

有兩種方法可以將 Spire.PDF for C++ 集成到您的應(yīng)用程序中。一種方法是通過 NuGet 安裝它,另一種方法是從我們的網(wǎng)站下載包并將庫復(fù)制到您的程序中。通過 NuGet 安裝更簡單,更推薦使用。您可以通過訪問以下鏈接找到更多詳細(xì)信息。

如何將 Spire. PDF for C++ 集成到 C++ 程序中

添加單一圖片水印到 PDF 文檔

Sprie.PDF for C++ 提供的 PdfPageBase->GetCanvas()->DrawImage() 方法可以在 PDF 頁面的任意位置繪制圖片,而通過對圖片的透明度進(jìn)行調(diào)節(jié)可以實(shí)現(xiàn)淡色效果,使其不覆蓋文檔內(nèi)容。添加單一圖片水印的操作步驟如下:

  • 創(chuàng)建 PdfDocument 的對象。
  • 使用 PdfDocument->LoadFromFile() 方法載入 PDF 文件。
  • 使用 PdfImage::FromFile() 方法載入圖片。
  • 循環(huán)遍歷文檔頁面以繪制水印。
  • 使用 PdfDocument->GetPages()->GetItem() 方法獲取指定頁面。
  • 使用 PdfPageBase->GetCanvas()->SetTransparency() 方法設(shè)置透明度。
  • 使用 PdfPageBase->GetCanvas()->DrawImage() 方法將圖片繪制在頁面上。
  • 使用 PdfDocument->SaveToFile() 方法保存文檔。
#include "Spire.Pdf.o.h"

using namespace Spire::Pdf;

int main()
{
	//創(chuàng)建PdfDocument的對象
	PdfDocument* document = new PdfDocument();

	//載入PDF文件
	document->LoadFromFile(L"C:/我們之間的距離.pdf");

	//載入圖片
	PdfImage* img = PdfImage::FromFile(L"C:/Logo.png");

	//獲取圖片的高度和寬度
	int imageWidth = img->GetWidth();
	int imageHeight = img->GetHeight();

	for (int i = 0; i < document->GetPages()->GetCount(); i++)
	{
		//獲取指定頁面
		PdfPageBase* page = document->GetPages()->GetItem(i);

		//獲取頁面的高度和寬度
		float pageWidth = (float)(page->GetActualSize()->GetWidth());
		float pageHeight = (float)(page->GetActualSize()->GetHeight());

		//設(shè)置透明度
		page->GetCanvas()->SetTransparency(0.3f);

		//將圖片繪制在頁面中央
		page->GetCanvas()->DrawImage(img, pageWidth / 2 - imageWidth / 2, pageHeight / 2 - imageHeight / 2, imageWidth, imageHeight);
	}

	//保存文檔
	document->SaveToFile(L"Output/單一圖片水印.pdf");
	document->Close();
	delete document;
}

添加平鋪圖片水印到 PDF 文檔

PdfTilingBrush 類表示平鋪畫筆,可以生成重復(fù)平鋪圖案來填充區(qū)域。以下是插入平鋪水印的詳細(xì)操作步驟:

  • 創(chuàng)建一個(gè)自定義方法 InsertTiledImagetWatermark(PdfPageBase* page, PdfImage* image, int rowNum, int columnNum) 來添加平鋪水印到 PDF 頁面。可通過參數(shù) rowNum 和 columnNum 來指定平鋪水印的行數(shù)和列數(shù)。
  • 創(chuàng)建 PdfDocument 的對象。
  • 使用 PdfDocument->LoadFromFile() 方法載入 PDF 文檔。
  • 遍歷文檔中的所有頁面,并調(diào)用自定義方法 InsertTiledImageWatermark() 來給每一頁添加水印。
  • 使用 PdfDocument->SaveToFile() 方法保存文檔。
#include "Spire.Pdf.o.h"

using namespace Spire::Pdf;

void InsertTiledImageWatermark(PdfPageBase* page, PdfImage* img, int row, int column) {
    //創(chuàng)建平鋪筆刷
    PdfTilingBrush* brush = new PdfTilingBrush(new SizeF(page->GetCanvas()->GetSize()->GetWidth() / (int)(row), page->GetCanvas()->GetSize()->GetHeight() / (int)(column)));
    //設(shè)置透明度
    brush->GetGraphics()->SetTransparency(0.3);
    //將圖片繪制在筆刷上
    brush->GetGraphics()->DrawImage(img, new PointF((brush->GetSize()->GetWidth() - img->GetWidth()) / 2.f, (brush->GetSize()->GetHeight() - img->GetHeight()) / 2.f));
    //使用筆刷將圖片繪制在頁面上
    page->GetCanvas()->DrawRectangle(brush, new RectangleF(new PointF(0, 0), page->GetCanvas()->GetSize()));
}

int main()
{
    //創(chuàng)建PdfDocument的對象
    PdfDocument* pdf = new PdfDocument();

    //載入PDF文件
    pdf->LoadFromFile(L"C:/我們之間的距離.pdf");

    //載入圖片
    PdfImage* img = PdfImage::FromFile(L"C:/Logo.png");

    //循環(huán)遍歷文檔頁面以添加水印
    for (int i = 0; i < pdf->GetPages()->GetCount(); i++) {
        //獲取一個(gè)頁面
        PdfPageBase* page = pdf->GetPages()->GetItem(i);
        //添加水印到頁面
        InsertTiledImageWatermark(page, img, 3, 3);
    }

    //保存文檔
    pdf->SaveToFile(L"Output/平鋪圖片水印.pdf");
    pdf->Close();
    delete pdf;
}

到此這篇關(guān)于C++實(shí)現(xiàn)添加圖片水印到PDF文檔的文章就介紹到這了,更多相關(guān)C++ PDF添加圖片水印內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 如何在C++類的外部調(diào)用類的私有方法

    如何在C++類的外部調(diào)用類的私有方法

    這篇文章主要介紹了如何在C++類的外部調(diào)用類的私有方法,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下
    2022-09-09
  • C語言背包問題求解全過程(貪心方法)

    C語言背包問題求解全過程(貪心方法)

    背包問題是一個(gè)經(jīng)典的動(dòng)態(tài)規(guī)劃問題,而貪心算法是一種常用的解決背包問題的方法,這篇文章主要給大家介紹了關(guān)于C語言背包問題求解(貪心方法)的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-06-06
  • C語言實(shí)現(xiàn)BMP圖像開運(yùn)算處理

    C語言實(shí)現(xiàn)BMP圖像開運(yùn)算處理

    這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)BMP圖像開運(yùn)算處理,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • C語言實(shí)現(xiàn)紅黑樹詳細(xì)步驟+代碼

    C語言實(shí)現(xiàn)紅黑樹詳細(xì)步驟+代碼

    大家好,本篇文章主要講的是C語言實(shí)現(xiàn)紅黑樹詳細(xì)步驟+代碼,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01
  • 仿現(xiàn)代C++智能指針實(shí)現(xiàn)引用計(jì)數(shù)

    仿現(xiàn)代C++智能指針實(shí)現(xiàn)引用計(jì)數(shù)

    這篇文章主要為大家詳細(xì)介紹了如何仿現(xiàn)代C++智能指針實(shí)現(xiàn)引用計(jì)數(shù),文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,有需要的小伙伴可以了解下
    2024-03-03
  • C語言非遞歸算法解決快速排序與歸并排序產(chǎn)生的棧溢出

    C語言非遞歸算法解決快速排序與歸并排序產(chǎn)生的棧溢出

    上期我們講完了排序算法下,不知道小伙伴們有沒有發(fā)現(xiàn)一個(gè)問題,快速排序和歸并排序我們都是用遞歸來實(shí)現(xiàn)的,可能有小伙伴會(huì)問,如果說數(shù)據(jù)量很多話,棧區(qū)空間會(huì)不會(huì)不夠用呢?這期我們就來解決使用遞歸實(shí)現(xiàn)的排序?qū)е聴R绯鋈绾谓鉀Q
    2022-04-04
  • OPENCV批量讀取圖片實(shí)現(xiàn)方法

    OPENCV批量讀取圖片實(shí)現(xiàn)方法

    下面小編就為大家?guī)硪黄狾PENCV批量讀取圖片實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的?,F(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-06-06
  • C++學(xué)習(xí)心得之掃雷游戲

    C++學(xué)習(xí)心得之掃雷游戲

    這篇文章主要為大家詳細(xì)介紹了C++學(xué)習(xí)心得之掃雷游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • C++工廠方法之對象創(chuàng)建型模式詳解

    C++工廠方法之對象創(chuàng)建型模式詳解

    這篇文章主要為大家詳細(xì)介紹了C++對象創(chuàng)建型模式,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • C++中sprintf使用的方法與printf的區(qū)別分析

    C++中sprintf使用的方法與printf的區(qū)別分析

    這篇文章主要介紹了C++中sprintf使用的方法與printf的區(qū)別,實(shí)例分析了sprintf與printf的具體用法及相關(guān)注意事項(xiàng),具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-01-01

最新評論

鞍山市| 安龙县| 开化县| 两当县| 拜泉县| 井陉县| 宁都县| 呼玛县| 聊城市| 措勤县| 宁蒗| 陇西县| 莒南县| 南投市| 容城县| 屯门区| 大兴区| 邻水| 连城县| 吉木萨尔县| 钟山县| 绍兴县| 西吉县| 玉山县| 车致| 余干县| 莎车县| 清水河县| 沿河| 嘉祥县| 湄潭县| 富宁县| 渭源县| 息烽县| 澄江县| 郑州市| 鄂温| 建湖县| 巴南区| 高唐县| 临汾市|