ちょいめも

物理/Python/Cの雑記帳

ImageMagickを使って複数のjpgをpdfにする

#include <stdio.h>
#include <stdlib.h>
#include <direct.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <windows.h>

int main(void) {
	
	/*jpgを保存するフォルダを作成し、jpgをpdfに変換、jpgを削除する*/
	char program[] = "D:\\Tools\\ImageMagick\\convert.exe";
	int ret;
	struct stat st;
	char work_dir[] = "D:\\work";
	char tmp_dir[] = "temp";
	char save_dir[256];
	char input_fn[] = "*.jpg";
	char output_fn[] = "all.pdf";
	char cmd[256];
	char output_fn_path[256];
	char del_jpg[256];
	int result;
	
	//jpgを保存するフォルダ
	sprintf(save_dir, "%s\\%s", work_dir, tmp_dir);
	
	//フォルダ存在チェック
	ret = stat(save_dir, &st);
	
	if(0 == ret){
		printf("%sは存在します。\n", save_dir);
	}
	else{
		printf("%sを作成します。\n", save_dir);
		_mkdir(save_dir);
	}
	
	//tempフォルダにあるjpgをpdfに変換
	sprintf(cmd, "%s %s\\%s %s\\%s", program, save_dir, input_fn, save_dir, output_fn);
	result = system(cmd);
	if (result == EXIT_SUCCESS){
        puts("pdfを作成しました。");
		//出力ファイルがあるフォルダを開く
//		system("explorer \"D:\\work\\temp\"");
		//出力ファイルがあるフォルダを開く ファイル選択状態にする
		sprintf(output_fn_path, "/select,%s\\%s", save_dir, output_fn);
		ShellExecute(NULL, NULL, "explorer.exe", output_fn_path, NULL, SW_SHOWNORMAL);
	}
	else{
        puts("pdf作成に失敗しました。");
    }
	
	//jpgファイルを削除する
	sprintf(del_jpg, "del %s\\%s", save_dir, input_fn);
	system(del_jpg);
	
    return 0;
	
}