2011年3月30日水曜日

MAGICの漢字入力制御

MAGICの漢字入力制御

値 入力モード サイズ 入力方法 入力例
0 OFF - - -
1 全Rかな 全角 ローマ字 かな
2 全かな 全角 直接 のちみち(KANA )
3 全Rカナ 全角 ローマ字 カナ
4 全カナ 全角 直接 ノチミチ(KANA )
5 半Rカナ 半角 ローマ字 カナ
6 半カナ 半角 直接 ノチミチ(KANA )
7 全英数 全角 直接 kana
8 半英数 半角 直接 kana

UniPass OSコマンドの上限

UniPaasのOSコマンドの文字列上限が、たぶん4000文字
OSが、Windows98,2000までは、コマンドパラメータが4000までだった。
XPから8000まで拡張されていたが、UniPaasは対応していないようだ。

確認Ver. UniPaas 1.5
OS:Windows7 SP1

2011年3月28日月曜日

MemoryテーブルのDBDELは失敗する

親タスクでトランザクションはNoにしている。
サブフォームでメモリーテーブルをオープンしている。
親タスクの検索ボタンでメモリーテーブルを作成後
サブフォームを再表示して、親タスクでDBDELを発行しているが、うまく動作しない。

どうも、サブフォームで使用しているから、DBDEL自体がテーブルDROP出来ないと思われる。
DBDELでは無く、レコードを削除するタスクで対応するようにする。

UniPaas DB SQLの文字列

UniPaas DB SQLの文字列で、Where句でそのまま文字列を渡したい場合は
:変数の前に@をおく

2011年3月24日木曜日

MS-SQL 一時テーブルの作成方法

if OBJECT_ID('tempdb..#temp_table1') is not null
drop table #temp_table1

create table #temp_table1 (
ID int,
NAME varchar(50),
VALUE varchar(255)
)

2011年3月23日水曜日

PDFから画像ファイルを作成(GhostScriptLiteを使用)

PDFから画像ファイルを作成(GhostScriptLiteを使用)
複数ページ対応する為に、tiff形式にしました。

pdfを一旦、画像ファイル(tiff)に変換後
画像下部を白抜き編集した後に、再度pdfを作成しました。

pdfから画像を作成するのは、GhostScriptLiteを使用 Ver9.0
画像の編集は、PdfSharpを使用しました。


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using PdfSharp;
using PdfSharp.Pdf;
using PdfSharp.Pdf.IO;
using PdfSharp.Drawing;
using System.Drawing;
using System.Drawing.Imaging;

namespace PDF得意先発注Clear
{
class Program
{
static void Main(string[] args)
{
if (args.Length == 0)
{
Console.WriteLine("コマンドライン引数はありません。");
return;
}

String vTempFile = args[0] + "_.bmp";

// ファイルを削除する
if (System.IO.File.Exists(vTempFile))
{
try { File.Delete(vTempFile); }
catch { };
}

if (System.IO.File.Exists(vTempFile))
{
try { File.Delete(vTempFile); }
catch { };
}

//PDFを画像に変換 PDFConvertはPDFtoImage.csにある
PDFConvert converter = new PDFConvert();
bool Converted = false;

//Setup the converter
converter.RenderingThreads = -1;

converter.TextAlphaBit = -1;

converter.OutputToMultipleFile = false;
converter.FirstPageToConvert = -1;
converter.LastPageToConvert = -1;
converter.FitPage = false;
converter.JPEGQuality = 100; //100は圧縮しない
//converter.OutputFormat = "jpeg";
converter.OutputFormat = "tifflzw";

Converted = converter.Convert(args[0].ToString(), vTempFile);

// Open the output document
PdfDocument outputDocument = new PdfDocument();

//複数ページに対応 2011/03/23
//画像の読み取り
var ReadImage = Image.FromFile(vTempFile);

//ディメンジョンリストを作成する
Guid[] DimensionList = ReadImage.FrameDimensionsList;

//ディメンジョンが続く限りループ
foreach(Guid dimens in DimensionList )
{
//フレームディメンジョンを作成し
var fd = new FrameDimension(dimens);

//ページ数を取得する
int Pages = ReadImage.GetFrameCount(fd);

//全頁処理対象
for (int frameIndex = 0; frameIndex < Pages; frameIndex++)
{
//アクティブフレームを切り替える
ReadImage.SelectActiveFrame(fd, frameIndex);

//新しいビットマップにコピーする
var img = new Bitmap(ReadImage);
img.SetResolution(ReadImage.HorizontalResolution, ReadImage.VerticalResolution);

//ページ追加
PdfPage page = outputDocument.AddPage();

using (XImage image = XImage.FromGdiPlusImage(img))
{
page.Width = image.PointWidth;
page.Height = image.PointHeight;

using (XGraphics gfx = XGraphics.FromPdfPage(page))
{

gfx.DrawImage(image, 0, 0);
var options = new XPdfFontOptions(PdfFontEmbedding.Always);

XPen pen = new XPen(XColors.White, Math.PI);

gfx.DrawRectangle(pen, XBrushes.White, 360, 640, 600, 870);
gfx.DrawRectangle(pen, XBrushes.White, 0, 720, 600, 870);
}
}
}
}
outputDocument.Save(args[0]);

ReadImage.Dispose();

//元ファイルを削除
File.Delete(vTempFile);
}
}
}

Windows CommandLineの文字列制限

 Microsoft Windows XP 以降を実行しているコンピュータでは、コマンド プロンプトで使用できる文字列の最大長は 8191 文字です。

 Microsoft Windows 2000 または Windows NT 4.0 を実行しているコンピュータでは、コマンド プロンプトで使用できる文字列の最大長は 2047 文字です。

 この制限は、コマンド ライン、他のプロセスによって受け継がれる個別の環境変数 (PATH 変数など)、およびすべての環境変数の展開結果に適用されます。[コマンド プロンプト] を使用してバッチ ファイルを実行する場合は、この制限がバッチ ファイルの処理にも適用されます。

 長いコマンド ラインを必要とするプログラムは、パラメータ情報を格納したファイルを使用するように変更し、そのファイル名をコマンド ラインに含めます。

 使用する環境変数が長いプログラムは、環境変数に格納される値が (使用するオペレーティング システムに応じて) 2047 文字または 8191 文字を超えないように変更します

2011年3月16日水曜日

MS-SQL で OracleのTO_DATEを

MS-SQLでOracleのTO_DATE関数を実装

CREATE FUNCTION [dbo].[TO_DATE]
(
-- Add the parameters for the function here
@piStrDate varchar(512),
@piFORMAT varchar(512)
)
-- =============================================
-- Author:アスカクリエイト
-- Create date: 2011/03/16
-- Description: 文字列をFORMAT文字列で日付型を返す
-- =============================================
RETURNS DateTime
AS
BEGIN
-- Declare the return variable here
DECLARE @vDate AS DateTime

-- 文字8
IF (@piFORMAT IS NULL) OR (UPPER(@piFORMAT) = 'YYYYMMDD')
BEGIN

SET @vDate = CONVERT(datetime, @piStrDate, 112)
END
ELSE
BEGIN
SET @vDate = CONVERT(datetime, @piStrDate, 112)
END

-- Return the result of the function
RETURN @vDate

END

MS-SQL で OracleのTO_CHARを

MS-SQL で OracleのTO_CHARを使用したい

CRAETE FUNCTION [dbo].[TO_CHAR]
(
-- Add the parameters for the function here
@piDateTime DateTime,
@piFORMAT varchar(512)
)
-- =============================================
-- Author:アスカクリエイト
-- Create date: 2011/03/16
-- Description: 日付を FORMATの文字列で返す
-- =============================================
RETURNS VARCHAR(2000)
AS
BEGIN
-- Declare the return variable here
DECLARE @vStrDate AS VARCHAR(2000)

-- 文字8
IF (@piFORMAT IS NULL) OR (UPPER(@piFORMAT) = 'YYYYMMDD')
BEGIN

SET @vStrDate = CONVERT(char(8), @piDateTime, 112)
END
ELSE
BEGIN
SET @vStrDate = CONVERT(char(8), @piDateTime, 112)
END

-- Return the result of the function
RETURN @vStrDate

END

2011年3月14日月曜日

支援

かみさんの実家が、福島県福島市ですが
土曜日からメールで安否は確認したのですが
ライフライン(電気、ガス、水道)が、止まっているらしく
電話が不通なのです。

早く復旧するように、お祈りします。

Yahooの支援に支援しました。
http://volunteer.yahoo.co.jp/

2011年3月10日木曜日

JPEG画像の「品質」

JPEG画像の「品質」

JPEG Quality は0から100まで
これは、圧縮率なので、100は圧縮しない

PDFSharpを使って、画像からPDFを作成

PDFSharpを使って画像からPDFを作成

画像をPDFにまとめる
以下のコードで画像をPDFにまとめることができる。

string SavePath = "ImageTest.pdf";
string[] ImagePaths = { "無題.bmp" };

using (PdfDocument Document = new PdfDocument())
{
foreach (string ImagePath in ImagePaths)
{
PdfPage page = Document.AddPage();
using (XImage image = XImage.FromFile(ImagePath))
{
page.Width = image.PointWidth;
page.Height = image.PointHeight;
using (XGraphics gfx = XGraphics.FromPdfPage(page))
{
gfx.DrawImage(image, 0, 0);
}
}
}
Document.Save(SavePath);
}
Process.Start(SavePath);

元ネタ
http://d.hatena.ne.jp/aont/20090823/1251021218

2011年3月9日水曜日

Command-LineでPDF印刷

フォルダにあるPDFを一括で印刷する必要があった。

PDF X-Change Viewerで以下のバッチを作成

"C:\Program Files\Tracker Software\PDF Viewer\PDFXCview.exe" /print ファイル名.pdf

出力先は、デフォルトプリンタ

wdCalendar for ASP.NET , OSS

wdCalendar for ASP.NET

http://wdcalendar.blogspot.com/

2011年3月8日火曜日

ファイルをリードオンリーにする

ファイルをリードオンリーにする方法

OS コマンドのattribを使用する

最近、DOSのコマンドを使っていないから忘れていた。

Coderun WebベースのIDE

http://www.coderun.com/

ブラウザでココまで出来るとは、感動ものです。

Google Calendar like asp.net

Google Calendarに似た予定表

2011年3月8日時点

wdCalendar
http://plugins.jquery.com/project/wdCalendar
License:LGPL

日本語化
http://www.okushin.co.jp/kodanuki_note/2011/02/googlejquerywdcalendar.html
月表示と週表示がある。


DayPlot
www.daypilot.org/
License:Apache 2.0
OutLookに似ているインターフェース
c#で作成されているので、asp.netで作りやすい


JQuery Week Calendar
http://jsajax.com/Articles/jqueryweekcalendar/1439
License:MIT or LGPL
週表示のみ


JQuery-frontier-calendar
http://code.google.com/p/jquery-frontier-calendar/
License:MIT
月表示のみ

2011年3月7日月曜日

Delphi O/Rマッパー

Delphi Open SourceのO/Rマッパー
DelphiXEで使用できる。

InstantObjectもあるけど、こちらは開発が停滞しています。

http://sourceforge.net/projects/tiopf/
License:LGPL or MPL

O/Rマッパーとかでコーディングを少しでも楽にしたい。

iTextSharpで線を書く

iTextSharpで線を書く
iTextSharpでLineを書く

参考url
http://www.mikesdotnetting.com/Article/88/iTextSharp-Drawing-shapes-and-Graphics

確認Ver:5.0.5.0

Sample 今回は四角の枠

string pdfpath = Server.MapPath("PDFs");
Document doc = new Document();
try
{
PdfWriter writer = PdfWriter.GetInstance(doc, new FileStream(pdfpath + "/Graphics.pdf", FileMode.Create));
doc.Open();
PdfContentByte cb = writer.DirectContent;
...
cb.SetColorStroke(new CMYKColor(255, 255, 255, 255));
cb.SetColorFill(new CMYKColor(255, 255, 255, 255));
cb.MoveTo(0, 850);
cb.LineTo(0, 810);
cb.LineTo(590, 810);
cb.LineTo(590, 850);

//cb.Fill(); //塗りつぶすならFillを使用
cb.ClosePathStroke(); //線を描くだけならClosePathStrokeを使用する

2011年3月2日水曜日

Excel2007 FileFomat

Excel2007 FileFormat
 定数:xlExcel8 56
 定数:xlExcel9795 43